是我题目没有看懂吗,还是程序有问题,路过看一下,谢
#include<bits/stdc++.h>
using namespace std;
int n,m,ans,b[10010];
struct node{
int f,num;
}a[10010][110];
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
int sum=0;
for(int j=0;j<m;j++){
cin>>a[i][j].f>>a[i][j].num;
if(a[i][j].f==1)sum++;
}
b[i]=sum;
}
int q;
cin>>q;
int t=q;
for(int i=0;i<n;i++){
ans=(ans+a[i][t].num)%20123;
if(a[i][t].f==1){
continue;
}
int v=a[i][t].num%b[i];
int s=0,ss=0;
for(int j=t+1;ss<=m;j++){
if(a[i][j].f==1)s++;
if(s==v){
t=j;
break;
}
if(j==m-1)j=0;
ss++;
}
}
cout<<ans%20123;
return 0;
}