下面是让4、7、8、20 RE的代码
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
typedef struct
{
int dire;
char name[11];
}info;
int main()
{
int i,j,n,m,loc,lr,step;
info *a;
cin>>n>>m;
a=(info *)malloc(sizeof(info) * n);
for(i=1;i<=n;i++)
{
cin>>a[i].dire;
cin>>a[i].name;
}
for(i=0,loc=1;i<m;i++)
{
cin>>lr>>step;
if(lr==a[loc].dire)
loc-=step;
else
loc+=step;
for(;loc<=0;loc=n+loc);
if(loc>n)
loc=loc%n;
}
cout<<a[loc].name;
return 0;
}
像下面这样直接定义一个info类型的数组就全部AC了
int main()
{
int i,j,n,m,loc,lr,step;
info a[100001];// <--这里
cin>>n>>m;
for(i=1;i<=n;i++)
{
cin>>a[i].dire;
cin>>a[i].name;
}
这是为啥吔?