请问下面两份代码哪里有区别??? 第一份能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;
}