比赛 20150714B 评测结果 AAAAAAAAAA
题目名称 拱猪计分 最终得分 100
用户昵称 Satoshi 运行时间 0.005 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2015-07-14 10:06:25
显示代码纯文本
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream in("heart.in");
ofstream out("heart.out");
int H[20]={0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};
class node
{
public:
	int num;
	char text;
	bool have;
};
vector<node>S[5];
void work()
{
	int i,j;
	int sum[5]={0};
	bool l[5]={0};
	bool jiabei[5]={0};
	bool tongyijiahaha[21]={0};
	bool flag=1;
	bool s12[5]={0},d11[5]={0};
	int tongyijia=0;
	for(i=1;i<=4;i++)
	{
		for(j=0;j<S[i].size();j++)
		{
			int v=S[i][j].num;
			char c=S[i][j].text;
			if(v==12&&c=='S')s12[i]=1;
			if(v==11&&c=='D')d11[i]=1;
		}
	}
	//红心在不在一家以及在哪一家
	for(i=1;i<=4;i++)
	{
		for(j=1;j<=15;j++)tongyijiahaha[j]=0;
		for(j=0;j<S[i].size();j++)
		{
			int v=S[i][j].num;
			char c=S[i][j].text;
			if(c=='H')tongyijiahaha[v]=1;
		}
		for(j=1;j<=13;j++)
		{
			if(!tongyijiahaha[j])
			{
				flag=0;
				break;
			}
		}
		if(flag)
		{
			tongyijia=i;
			if(s12[i]&&d11[i])
			{
				l[i]=1;
				sum[i]=500;
				break;
			}
			else
			{
				sum[i]=200;
			}
		}
	}
	//加倍不加倍?
	for(i=1;i<=4;i++)
	{
		for(j=0;j<S[i].size();j++)
		{
			int v=S[i][j].num;
			char c=S[i][j].text;
			if(c=='C'&&v==10)//c10
			{
				if(S[i].size()==1)
				{
					l[i]=1;
					sum[i]=50;
					break;
				}
				else
				{
					jiabei[i]=1;
					break;
				}
			}
		}
	}
	//主程序
	for(i=1;i<=4;i++)
	{
		if(l[i])continue;
		for(j=0;j<S[i].size();j++)
		{
			int v=S[i][j].num;
			char c=S[i][j].text;
            if(i!=tongyijia)
			{
				if(c=='H')sum[i]+=H[v];
			}
			if(c=='S'&&v==12)sum[i]-=100;
			if(c=='D'&&v==11)sum[i]+=100;
		}
	}
	//加倍
	for(i=1;i<=4;i++)if(jiabei[i])sum[i]*=2;
	for(i=1;i<=4;i++)
	{
		if(sum[i]>0)out<<'+';
		out<<sum[i]<<' ';
	}
	out<<endl;
}
int main()
{
	int haha=1,bitch;
	int i,j,a;
	int tuichu=0;
	char ch;
	node b;
	while(haha)
	{
		tuichu=0;
		for(i=1;i<=4;i++)S[i].clear();
		for(i=1;i<=4;i++)
		{
			in>>a;
			if(a==0)
			{
				tuichu++;
				continue;
			}
			else
			{
				for(j=1;j<=a;j++)
				{
					in>>ch;
					in>>bitch;
					b.num=bitch;
					b.text=ch;
					//out<<b.num<<' '<<b.text<<endl;
					S[i].push_back(b);
				}
			}
		}
		if(tuichu==4)return 0;//读入结束
		else work();
	}
	return 0;
}