c++代码
#include <cstdio>
using namespace std;
int M,N,room[10003][103],door[10003][1003],l[10003];
int main(){
int sum=0,x=0,k,isDoor=0;
scanf("%d%d",&N,&M);
for (int i=0;i<N;i++){
l[i]=0;
for (int j=0;j<M;j++){
scanf("%d%d",&isDoor,&room[i][j]);
if (isDoor) door[i][l[i]++]=j;
};
};
scanf("%d",&k);
for (int i=0,j=-1;i<N;i++){
x=room[i][k];
while (door[i][++j]<k);
sum=(sum+room[i][k])%20123;
k=door[i][ (j+x-1) % l[i] ];
j=-1;
};
printf("%d\n",sum);
return 0;
}
样例能过.测试数据能过第一组,其余全WA,求教各位dalao orz