吸氧就 AC,不然就全 RE。
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=20123;
struct{
int tip,tag;
}mp[10005][105];
int num[10005],ans;
signed main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
int a,b;
cin>>a>>b;
mp[i][j].tag=a;
mp[i][j].tip=b;
if(a==1) num[i]++;
}
}
int now,k;
cin>>now;
now++;
ans=(ans+mp[1][now].tip)%mod;
for(int i=1;i<=n;i++){
ans=(ans+mp[i][k].tip)%mod;
int x=mp[i][now].tip,y=num[i];
int z=(x-1)%y+1;
int fst;
if(mp[i][now].tag){
fst=now;
}
else{
for(int j=now-m;j<=now;j++){
int kkk=(j-1+m)%m+1;
if(mp[i][kkk].tag) {
fst=kkk;
break;
}
}
}
int tot=0;
for(int j=fst;tot<z;j++){
k=(j-1+m)%m+1;
if(mp[i][k].tag) tot++;
}
now=k;
}
cout<<ans;
return 0;
}