/* This is another solution to mt2-4.txt. */ /* Remaining men, starting from executioner, are x[0],x[1],...,x[m-1]. Memory pictures: m x[0] x[1] x[2] x[3] x[4] x[5] x[6] 7 1 2 3 4 5 6 7 7 2 3 4 5 6 7 1 7 3 4 5 6 7 1 2 print 3 6 4 5 6 7 1 2 6 5 6 7 1 2 4 6 6 7 1 2 4 5 print 6 5 7 1 2 4 5 5 1 2 4 5 7 5 2 4 5 7 1 print 2 4 4 5 7 1 4 5 7 1 4 4 7 1 4 5 print 7 3 1 4 5 3 4 5 1 3 5 1 4 print 5 2 1 4 2 4 1 2 1 4 print 1 1 4 1 4 1 4 print 4 0 */ #include int main(void) { int x[101]; /* one extra space so we can copy x[0] to x[m] */ int m; int c; int i; int j; scanf("%d",&m); scanf("%d",&c); if (m > 100) m = 100; /* avoid buffer overflow */ for (i = 0;i < m;++i) x[i] = i + 1; while (m > 0) { /* men are still alive */ for (i = 1;i < c;++i) { x[m] = x[0]; for (j = 0;j < m;++j) x[j] = x[j + 1]; } printf("%d\n",x[0]); --m; for (j = 0;j < m;++j) x[j] = x[j + 1]; } return 0; }