社区讨论

求条玄关

P1148拱猪计分参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m44yorei
此快照首次捕获于
2024/12/01 10:07
去年
此快照最后确认于
2025/11/04 13:32
4 个月前
查看原帖
写成屎了
CPP
#include<bits/stdc++.h>
using namespace std;
int h[14]={0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};
int main(){
	while(1){
		int al,bl,cl,dl,f=0,ap=0,bp=0,cp=0,dp=0;
		cin>>al>>bl>>cl>>dl;
		if(al==0&&bl==0&&cl==0&&dl==0) break;
		vector<string> a,b,c,d;
		for(int i=0;i<al;i++){
			string t;
			cin>>t;
			a.push_back(t);
			if(t[0]=='H'){
				if(t.length()==2){
					int s=t[1]-'0';
					ap+=h[s];
				}else{
					int s=10+t[2]-'0';
					ap+=h[s];
				}
			}
		}
		for(int i=0;i<bl;i++){
			string t;
			cin>>t;
			b.push_back(t);
			if(t[0]=='H'){
				if(t.length()==2){
					int s=t[1]-'0';
					bp+=h[s];
				}else{
					int s=10+t[2]-'0';
					bp+=h[s];
				}
			}
		}
		for(int i=0;i<cl;i++){
			string t;
			cin>>t;
			c.push_back(t);
			if(t[0]=='H'){
				if(t.length()==2){
					int s=t[1]-'0';
					cp+=h[s];
				}else{
					int s=10+t[2]-'0';
					cp+=h[s];
				}
			}
		}
		for(int i=0;i<dl;i++){
			string t;
			cin>>t;
			d.push_back(t);
			if(t[0]=='H'){
				if(t.length()==2){
					int s=t[1]-'0';
					dp+=h[s];
				}else{
					int s=10+t[2]-'0';
					dp+=h[s];
				}
			}
		}
		if(al==16){
			cout<<'+'<<1000<<' '<<0<<' '<<0<<' '<<0<<endl;
			continue;
		}
		if(bl==16){
			cout<<0<<' +'<<1000<<' '<<0<<' '<<0<<endl;
			continue;
		}
		if(cl==16){
			cout<<0<<' '<<0<<' +'<<1000<<' '<<0<<endl;
			continue;
		}
		if(dl==16){
			cout<<0<<' '<<0<<' '<<0<<' +'<<1000<<endl;
			continue;
		}
		if(ap==-194){
			ap=200;
			f=1;
		}
		if(bp==-194){
			bp=200;
			f=2;
		}
		if(cp==-194){
			cp=200;
			f=3;
		}
		if(dp==-194){
			dp=200;
			f=4;
		}
		if(f==0){
			for(int i=0;i<al;i++){
				if(a[i][0]=='S'){
					ap-=100;
				}
				if(a[i][0]=='D'){
					ap+=100;
				}
				if(a[i][0]=='C'){
					if(al==1) ap+=50;
					else ap*=2;
				}
			}
			for(int i=0;i<bl;i++){
				if(b[i][0]=='S'){
					bp-=100;
				}
				if(b[i][0]=='D'){
					bp+=100;
				}
				if(b[i][0]=='C'){
					if(bl==1) bp+=50;
					else bp*=2;
				}
			}
			for(int i=0;i<cl;i++){
				if(c[i][0]=='S'){
					cp-=100;
				}
				if(c[i][0]=='D'){
					cp+=100;
				}
				if(c[i][0]=='C'){
					if(cl==1) cp+=50;
					else cp*=2;
				}
			}
			for(int i=0;i<dl;i++){
				if(d[i][0]=='S'){
					dp-=100;
				}
				if(d[i][0]=='D'){
					dp+=100;
				}
				if(d[i][0]=='C'){
					if(dl==1) dp+=50;
					else dp*=2;
				}
			}
		}else{
			int sa=0,sb=0,sc=0,sd=0;
			for(int i=0;i<al;i++){
				if(a[i][0]=='S'||a[i][0]=='D') sa++;
				else if(a[i][0]=='C'){
					if(al==1) ap+=50;
					else ap*=2;
				}
			}
			for(int i=0;i<bl;i++){
				if(b[i][0]=='S'||b[i][0]=='D') sb++;
				else if(b[i][0]=='C'){
					if(bl==1) bp+=50;
					else bp*=2;
				}
			}
			for(int i=0;i<cl;i++){
				if(c[i][0]=='S'||c[i][0]=='D') sc++;
				else if(c[i][0]=='C'){
					if(cl==1) cp+=50;
					else cp*=2;
				}
			}
			for(int i=0;i<dl;i++){
				if(d[i][0]=='S'||d[i][0]=='D') sd++;
				else if(d[i][0]=='C'){
					if(dl==1) dp+=50;
					else dp*=2;
				}
			}
			if(f==1&&sa==2) ap=500;
			if(f==2&&sb==2) bp=500;
			if(f==3&&sc==2) cp=500;
			if(f==4&&sd==2) dp=500;
		}
		if(ap>0) cout<<'+'<<ap;
		else cout<<ap;
		if(bp>0) cout<<' +'<<bp;
		else cout<<' '<<bp;
		if(cp>0) cout<<' +'<<cp;
		else cout<<' '<<cp;
		if(dp>0) cout<<' +'<<dp<<endl;
		else cout<<' '<<dp<<endl;
	}
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...