记录编号 |
474554 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
[NOIP 2016]玩具谜题 |
最终得分 |
100 |
用户昵称 |
据说这是zzy |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.935 s |
提交时间 |
2017-11-10 09:53:05 |
内存使用 |
0.99 MiB |
显示代码纯文本
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
struct abc
{
string mz;
bool cx;
bool zy;
}a[100100];
int b[150000]={0};
int main()
{
freopen("toya.in","r",stdin);
freopen("toya.out","w",stdout);
int n=0,m=0;
cin>>n>>m;
for(int i=1;i<=n;i++)//mz是名字cx是朝向
cin>>a[i].cx>>a[i].mz;
for(int i=1;i<=m;i++)
cin>>a[i].zy>>b[i];//b人数zy是左右
int g=1;
for(int i=1;i<=m;i++)
{
if(!a[g].cx)//0表示朝向圈内,1表示朝向圈外
{
if(a[i].zy)//0是左方,1是右方
{
if(g+b[i]>n)
g=(g+b[i])-n;
else
g+=b[i];
}
else
{
if(g-b[i]<1)
g=n+(g-b[i]);
else
g=g-b[i];
}
}
else
if(a[i].zy)//0是左方,1是右方
{
if(g-b[i]<1)
g=n+(g-b[i]);
else
g=g-b[i];
}
else
{
if(g+b[i]>n)
g=(g+b[i])-n;
else
g+=b[i];
}
}
cout<<a[g].mz;
}