为什么会错两个点

#include<bits/stdc++.h>
using namespace std;
int x=1;
struct zz
{
bool a;
string b;
}c[100005];
int n,m;
int d[100005][2];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>c[i].a>>c[i].b;
}
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
d[i][x]=y;
}
for(int i=1;i<=m;i++)
{
if(c[x].a)
{
if(d[i][0])
{
x=(x+d[i][0])%n;
}
else if(d[i][1])
{
x=(x+n-d[i][1])%n;
}
}
else if(c[x].a==false)
{
if(d[i][0])
{
x=(x+n-d[i][0])%n;
}
else if(d[i][1])
{
x=(x+d[i][1])%n;
}
}
}
cout<<c[x].b<<endl;
return 0;
}

0 条评论

目前还没有评论...

信息

ID
2003
难度
6
分类
(无)
标签
递交数
2710
已通过
792
通过率
29%
被复制
10
上传者