50分求助
查看原帖
50分求助
185348
Zhe8468楼主2020/8/14 21:27

请问下面两份代码哪里有区别??? 第一份能AC (很久之前写的)第二份不能AC(现在写的)

#include <bits/stdc++.h>
using namespace std;
string c[100100];//人数 
int  d[100100];//朝向 
int main()
{
	long long n,m,ai,si,x=0;
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>d[i]>>c[i];
	}
	for(int i=0;i<m;i++){
		cin>>ai>>si;
		if(ai==0){//往左 
			if(d[x]==0){//朝内 
				x-=si;
			}else{//朝外
				x+=si;
			}
			if(x<0) x+=n;
			x%=n;
		}else{//往右 
			if(d[x]==0){//朝内 
				x+=si;
			}else{//朝外
				x-=si;
			}
			if(x<0) x+=n;
			x%=n;
		}
	}
	cout<<c[x]<<endl;
	return 0;
}

#include <bits/stdc++.h>
using namespace std;
struct xiaoren{
	int chaoxiang;
	string zhiye;
}a[100100];
int main()
{
	long long n,m,ai,si,p=0;
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>a[i].chaoxiang>>a[i].zhiye;
	}
	for(int i=0;i<m;i++){
		cin>>ai>>si;
		if(ai==0){
			if(a[p].chaoxiang==0){
				p -= si;
			}
			if(a[p].chaoxiang==1){
				p += si;
			}
			if(p<0) p+=n;
			p%=n;
		}
		if(ai==1){
			if(a[p].chaoxiang==0){
				p += si;
			}
			if(a[p].chaoxiang==1){
				p -= si;
			}
			if(p<0) p+=n;
			p%=n;
		}
	}
	cout<<a[p].zhiye<<endl;
	return 0;
}

2020/8/14 21:27
加载中...