50tps求调
查看原帖
50tps求调
991851
X_weijifen_swl楼主2024/7/27 12:57
#include<bits/stdc++.h>
using namespace std;
typedef long long lld;
//-----------------------------------
struct mark
{
	string s;
}a[20],b[20],c[20],d[20];
lld as,bs,cs,ds;
int h[20]={0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40} ;
lld score(mark a[],int n)
{
	if(!n)return 0;
	if(n==16)return 1000; 
	bool s12,d11,c10,hyj;
	lld sum=0;
	s12=d11=c10=hyj=0;
	lld hcnt=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i].s[0]=='H')
		{
			lld p=1;
			lld su=0;
			while(a[i].s[p]>='0'&&a[i].s[p]<='9')
			{
				su=su*10+a[i].s[p++]-'0';
			}
			sum+=h[su];
			hcnt++;
		}
		if(a[i].s=="S12")s12=1;
		if(a[i].s=="D11")d11=1;
		if(a[i].s=="C10")c10=1;
	}
	if(hcnt==13)hyj=1;
	if(hyj)
	{
		sum=0;
		sum+=200;
		if(s12||d11)
		{
			sum+=500;
		}
	}
	else
	{
		if(s12)sum-=100;
		if(d11)sum+=100;
	}
	if(c10)sum*=2;
	return sum; 
}
void _cout(lld x)
{
	if(x>0)cout<<"+"<<x<<' ';
	else cout<<x<<' '; 
	return;
}
int main()
{
	int n=0,flag=0;
	while(cin>>n)
	{
		as=bs=cs=ds=0;
		flag=0;
		flag+=n;
		for(int i=1;i<=n;i++)cin>>a[i].s;
		as=score(a,n);
		cin>>n;
		flag+=n; 
		for(int i=1;i<=n;i++)cin>>b[i].s;
		bs=score(b,n);
		cin>>n;
		flag+=n;
		for(int i=1;i<=n;i++)cin>>c[i].s;
		cs=score(c,n);
		cin>>n;
		flag+=n;
		for(int i=1;i<=n;i++)cin>>d[i].s;
		ds=score(d,n);
		if(!flag)
		{
			return 0;
		}
		_cout(as);
		_cout(bs);
		_cout(cs);
		_cout(ds);
		cout<<endl;
	}
	return 0;
}


2024/7/27 12:57
加载中...