POJ 1978 Hanafuda Shuffle

問題
花札をシャッフルして、操作を終えたときの一番上を求めよ。
解法
普通にやるだけだった。
調べたら、終わりからシミュレーションするという賢い方法があるらしいので
こんどやってみようと思う。

#include <cstdio>
using namespace std;

int N, R;
int cards[51];
void suff(int p, int c){
	int temp[p];
	for(int i = 1; i < p; i++){
		temp[i] = cards[i];
	}
	for(int i = 0; i < c; i++){
		cards[i + 1] = cards[p + i];
	}
	for(int i = c + 1; i < p + c; i++){
		cards[i] = temp[i - c];
	}
}
int main(){
	while(scanf("%d %d", &N, &R)&&N != 0){
		for(int i = 1; i < N + 1; i++){
			cards[i] = N - i + 1;
		}
		for(int i = 0; i < R; i++){
			int p, c;
			scanf("%d %d", &p, &c);
			suff(p, c);
		}
		printf("%d\n", cards[1]);
	}
	return 0;
}