Hanafuda Shuffle
http://www.acm-japan.org/past-icpc/domestic2004/A.jp/A.html
cardをdeleteしようとするとエラーが出るのでとりあえず放置です.
そういえばプログラミングコンテストって,ファイル出力しなかったっけ?
#include <stdio.h> int main(void) { // // 宣言 // int out[256]; // 答え int oi = 0; // 答え配列の添え字 while(1) { // // 入力 // int n, r; scanf("%d%d", &n, &r); if(n == 0 && r == 0) break; // 山の初期化 int *card = new int[n]; for(int i = 1; i <= n; i++) { card[i-1] = n - (i-1); } // // シャッフル // int p, c; int *tmp = new int [n]; for(int i = 0; i < r; i++) { scanf("%d%d", &p, &c); for(int j = 0; j < c; j++) { tmp[j] = card[p-1+j]; } for(int j = p-1; j > 0; j--) { card[c+j] = card[j]; } for(int j = 0; j < c; j++) { card[j] = tmp[j]; } } out[oi++] = card[0]; // メモリの開放 delete [] tmp; } // // 出力 // for(int i = 0; i < oi; i++) { printf("%d\n", out[i]); } return 0; }