记录编号 456428 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 [NOIP 2016]玩具谜题 最终得分 100
用户昵称 GravatarHtBest 是否通过 通过
代码语言 C++ 运行时间 0.172 s
提交时间 2017-10-04 18:11:16 内存使用 1.84 MiB
显示代码纯文本
/************************
Essential information:
*创建时间:2017 10 04
*题目来源:NOIP
*采用算法:模拟
*作者:何子勖
 ************************/
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
using namespace std;
int n,m,now=0;
struct q
{
	char name[10];
	int back;
}a[100000];
int b,t;
/* Variable explain:
a:储存每个人状态
b:储存当前操作
t:储存位移量
n:储存人物总数
m:储存操作总数
now:当前位置
*/ 
int main()
{
	freopen("toya.in","r",stdin);
	freopen("toya.out","w",stdout);
	scanf("%d%d",&n,&m);
	for (int i = 0; i < n; ++i)	scanf("%d%s",&a[i].back,a[i].name);//循环读入每个人的状态和姓名
	for (int i = 0; i < m; ++i)
	{
		scanf("%d%d",&b,&t);
		if (b==a[now].back){now-=t;/*左移操作*/if (now<0)	now+=n;}//防止指针下溢
		else{now+=t;/*右移操作*/if(now>=n)	now-=n;}//防止指针上溢
	}
	printf("%s\n",a[now].name );
	return 0;
}