Lilliput Steps

小さな一歩から着実に. 数学やプログラミングのことを書きます.

AOJ 1129 - Hanafuda Shuffle

問題文 : http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1129&lang=jp


解法 :
Straight-forward ですね... ICPC 難易度表を埋めています.

コード :

#include <cstdio>

using namespace std;

int main()
{
	int n, r;
	int c[50], d[50];
	
	while (scanf("%d %d", &n, &r) && n){
		for (int i = 0; i < n; i++) c[i] = n - i;
		
		for (int i = 0; i < r; i++){
			int p, dx;
			scanf("%d %d", &p, &dx);
			for (int j = 0; j < n; j++) d[j] = c[j];
			for (int j = 0; j < p - 1; j++) d[j + dx] = c[j];
			for (int j = 0; j < dx; j++) d[j] = c[j + p - 1];
			for (int j = 0; j < n; j++) c[j] = d[j];
		}
		
		printf("%d\n", c[0]);
	}
}