0pts!求调
查看原帖
0pts!求调
913288
3_14楼主2024/9/25 20:18
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int MAX=1e6+1,mod=20123;
struct rooms{
	bool f;
	int num;
}mp[10001][101];
int n,m,x,t[MAX],key[MAX],ans,k,cnt;
void dfs(int flr,int tmp,bool flg){
	if(flr==n+1)return;
	if(flg){
		k=mp[flr][tmp].num;
		ans+=k;
		ans%=mod;
	}
	if(mp[flr][tmp].f){
		cnt++;
		if(cnt==k)dfs(flr+1,tmp,true);
		else dfs(flr,(tmp-1<0?m-1:tmp-1),false);
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n*m;i++)scanf("%d%d",&t[i],&key[i]);
	cin>>x;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			int idx=(i-1)*m+j;
			mp[i][j-1].f=t[idx];
			mp[i][j-1].num=key[idx];
		}
	}
	dfs(1,x,true);
	cout<<ans<<'\n';
	return 0;
}
2024/9/25 20:18
加载中...