Solutions/Mr.K's Solution
PKU 3032. Card Trick. [판정:AC]
Milkskin
2010. 12. 31. 20:14
문제 자주 못풀어서 미안; -_-a
#include#include int main() { int n; int cards; int *linear; int i, j; int ind; scanf( "%d", &n ); while( n > 0 ) { scanf( "%d", &cards ); linear = (int *) calloc( cards, sizeof(int) ); ind = 0; for( i = 1; i <= cards; i++ ) { j = 0; while( linear[ind] != 0 ) { ind = (ind + 1) % cards; } while(1) { if( linear[ind] == 0 ) { ind = (ind + 1) % cards; j++; if( j == i ) { while( linear[ind] != 0 ) { ind = (ind + 1) % cards; } linear[ind] = i; break; } } else { ind = (ind + 1) % cards; } } } for( i = 0; i < cards; i++ ) { printf( "%d%c", linear[i], (i == cards-1)? '\n': ' ' ); } free( linear ); n--; } return 0; }