求助大佬 90 4和17过不去,下载的数据是有问题的
查看原帖
求助大佬 90 4和17过不去,下载的数据是有问题的
172334
いつかきっと楼主2019/4/25 21:07

#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; struct node { int x; string s; }p[100005]; int main() { int n,m; cin>>n>>m; for(int i=0;i<n;i++) { cin>>p[i].x>>p[i].s; } int pos=0;

for(int i=0;i<m;i++)
{
	int a,s;
	cin>>a>>s;
	if(a==0)
	{
		if(p[pos].x==0)
		{
			if(pos-s<0)pos=pos-s+n;
			else pos-=s;
		}else if(p[pos].x==1)
		
		{
			if(pos+s>n)pos=pos+s-n;
			else pos+=s;
		}
	}
	else if(a==1)
	{
		if(p[pos].x==0)
		{
			if(pos+s>n)pos=pos+s-n;
			else pos+=s;
		}else if(p[pos].x==1)
		{
			if(pos-s<0)pos=pos-s+n;
			else pos-=s;
		}
	}
}
cout<<p[pos].s;

}

为什么对于pos可以直接取余算 看了下题解第一个和我思路一样,但是他取余能过,我却不能进行判断然后加减法,题目说了1≤si<n,减si如果小于0了再加个n;加si大于n了就减去个n 不就可以了吗?

2019/4/25 21:07
加载中...