洛谷 #1563. 玩具謎題

題意

有一圈人朝圈內或圈外,從1號開始,有多個指令表示從當前往 左/右 數幾個,問最後的位置

題解

一道水題

模擬即可

調試記錄

pos對n取模時沒有判斷pos==n的邊界

#include <cstdio>
#define maxn 100005
#define file freopen("玩具謎題data.in", "r", stdin); 

using namespace std;

int n, m, face[maxn];
char names[maxn][20];

int main(){
	//file;
	scanf("%d%d", &n, &m);
	
	for (int i = 1; i <= n; i++){
		scanf("%d%s", &face[i], &names[i]);
	}
	
	int fx, k, pos = 1;
	for (int i = 1; i <= m; i++){
		scanf("%d%d", &fx, &k);
		k %= n;
		
		pos = (pos + n + ((fx ^ face[pos] == 0) ? -1 : 1) * k) % n;
		if (pos == 0) pos = n;
	}
	printf("%s\n", names[pos]);
	
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章