// 2004 国内予選 問題A // 配列を1つ使う #include #define N 51 // 2数を交換する関数 void swap(int *x, int *y) { int tmp=*x; *x=*y; *y=tmp; } int main(void) { int n, r, p, c, i, j, k; int card[N+1]; // cardはカードの山、添え字を1から始める while(1){ scanf("%d %d", &n, &r); if(n==0 && r==0){ break; } // カードを並べる for(i=1; i<=n; i++){ card[i]=n-i+1; } for(i=0; i=2; j--){ // p枚目とp-1枚目を交換するのを一番上までやる for(k=0; k