求助,全WA
查看原帖
求助,全WA
658145
flysfy_LJX楼主2023/10/2 14:20
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define mod 20123
using namespace std;
void pop(){return;}
int n,m,start,nap[10010][110],frsum_opcl[10010][110],last[10101],ans;
signed main()
{
	cin >> n >> m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			int ls;
			cin >> ls >> nap[i][j];
			frsum_opcl[i][j]=ls+frsum_opcl[i][j-1];
			if(ls==1) last[i]=j;
		}
	cin >> start;start++;
	for(int i=1;i<=n-1;i++)
	{
		int step=nap[i][start];
		ans=(ans+step)%mod;
		if(frsum_opcl[i][m]-frsum_opcl[i][start]<step){
			step-=(frsum_opcl[i][m]-frsum_opcl[i][start]);
			start=0;
			if(frsum_opcl[i][m]-frsum_opcl[i][start]==step){
				start=last[i]; 
				goto up_step;
			}
			if(frsum_opcl[i][m]-frsum_opcl[i][start]<step)
				step=step-((step/frsum_opcl[i][m])*frsum_opcl[i][m]);
		}
		for(int j=start;j<=m;j++)
			if(frsum_opcl[i][j]-frsum_opcl[i][j-1]==1){
				step--;
				if(step==0){
					start=j;
					goto up_step;
				}
			}
		up_step:
		continue;
	}
	cout << (ans+nap[n][start])%mod << "\n";
	return 0;
}
2023/10/2 14:20
加载中...