就#2超了时也不知是为什么。。。。
#include<bits/stdc++.h>
using namespace std;
struct asdf
{
long long num,room;
}a[10002][202];
int main()
{
long long key = 0, n, m, now, i, j, k, l[10002];
scanf("%lld%lld", &n, &m);
for(i = 1; i <= n; i ++)
for(j = 0; j < m; j ++)
{
scanf("%lld%lld", &a[i][j].room, &a[i][j].num);
if(a[i][j].room == 1)
l[i] ++;
}
scanf("%lld", &now);
i = 1;
while(i <= n)
{
key += a[i][now].num;
key %= 20123;
k = 0;
for(j = now; ;j ++)
{
if(j == m)
j = 0;
if(a[i][j].room == 1)
k ++;
if(k == (a[i][now].num - 1) % l[i] + 1)
break;
}
now = j;
i ++;
}
printf("%lld",key);
return 0;
}
反正很奇怪。。。