WA20求助(
查看原帖
WA20求助(
503075
Lantrol楼主2022/11/28 06:30
#include<bits/stdc++.h>
#define int long long
#define ioc ios::sync_with_stdio(0)
using namespace std;

struct node{
	int bel=-1;
	int lev,val;
}a[105];

int c[105][105],d[105];
int n,m,q,L;
string plyr[2]={"Renko","Merry"};
int v[2],poss[2],jl[2];

int check(int pos,int plr){
	if(a[pos].bel==-1) return 0;
	if(a[pos].bel==plr) return a[pos].val;
	return -a[pos].val;
}

void build(int pos,int plr,int k){
	if(check(pos,plr)<0)return;
	if(check(pos,plr)==0){
		if(v[plr]<c[pos][0])return;
		jl[plr]+=d[pos];
	}
	for(int i=1;i<=k;i++){
		if(v[plr]<c[pos][a[pos].lev])return;
		if(a[pos].lev==L)return;
		a[pos].bel=plr;
		a[pos].val+=c[pos][a[pos].lev];
		v[plr]-=c[pos][a[pos].lev];
		a[pos].lev++;
	}
}
int p=1,cnt,cnt1;
signed main(){
	cin>>n>>m>>q>>L;
	v[0]=v[1]=m;
	for(int i=0;i<n;i++){
		for(int j=0;j<L;j++){
			cin>>c[i][j];
		}
	}	
	for(int i=0;i<n;i++){
		cin>>d[i];
	}int op,k;
	while(/*cnt1<=2*q*/cin>>op>>k){
		if(op==1){
			p=p^1;
			cnt1++;
			for(int i=1;i<=k;i++){
				poss[p]++;
				poss[p]%=n;
				if(check(poss[p],p)>0) v[p]+=check(poss[p],p);
				if(check(poss[p],p)<0){
					v[p]+=check(poss[p],p);
					v[p^1]-=check(poss[p],p);
				}				
			}
			if(v[p]<0){
				cout<<plyr[p];
				return 0;
			}
		}
		if(op==2){
			build(poss[p],p,k);
			if(p==1){
				v[0]+=jl[0];v[1]+=jl[1];
			}			
		}
		if(v[0]<0){
			cout<<plyr[0];
			return 0;
		}
		else if(v[1]<0){
			cout<<plyr[1];
			return 0;
		}
	}
	if(v[0]<0){
		cout<<plyr[0];
	}
	else if(v[1]<0){
		cout<<plyr[1];
	}
	else{
		cout<<v[0]<<" "<<v[1];
	}
}
2022/11/28 06:30
加载中...