记录编号 79563 评测结果 AAAAAAAAAA
题目名称 拱猪计分 最终得分 100
用户昵称 Gravatardigital-T 是否通过 通过
代码语言 C++ 运行时间 0.029 s
提交时间 2013-11-05 22:00:57 内存使用 0.32 MiB
显示代码纯文本
#include<fstream>
#include<cstring>
using namespace std;
ifstream fi("heart.in");
ofstream fo("heart.out");
int Heart[14]={0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};
int num[5],H[14],Cdouble,SQ,DJ;//加倍、猪、羊 各在哪家
int counting[5];
void Print()
{
	for(int tmp=1;tmp<=4;tmp++)
		if(counting[tmp]>0)
			fo<<'+'<<counting[tmp]<<' ';
		else
			fo<<counting[tmp]<<' ';
	fo<<endl;
}
void work()
{
	bool flag=true;
	for(int i=2;i<=13;i++)
		if(H[1]!=H[i])flag=false;
	if(H[1]==0)flag=false;
	if(flag)
	{
		counting[H[1]]+=200;
		if(SQ==H[1]&&DJ==H[1])//猪羊都在强王手里
		{
			counting[H[1]]+=300;
			if(Cdouble==H[1])//魔法士16张凑齐了有木有
				counting[Cdouble]*=2;
			else//只有Cdouble在别人手上
				counting[Cdouble]+=50;
			Print();
			return;
		}
		else
		{
			counting[SQ]-=100;
			counting[DJ]+=100;
			if(Cdouble==H[1]||Cdouble==SQ||Cdouble==DJ)//加倍
				counting[Cdouble]*=2;
			else//不加倍
				counting[Cdouble]+=50;
			Print();
			return;
		}
	}
	else
	{
		bool double_it=false;//是否加倍
		for(int i=1;i<=13;i++)//计算红心
		{
			if(Cdouble==H[i])double_it=true;
			counting[H[i]]+=Heart[i];
		}
		if(Cdouble==SQ||Cdouble==DJ)
			double_it=true;
		counting[SQ]-=100;//猪
		counting[DJ]+=100;//羊
		if(double_it)counting[Cdouble]*=2;//加倍
		else counting[Cdouble]+=50;//不加倍
		Print();
		return;
	}
}
int main()
{
	char ch;
	int temp;
	while(1)
	{
		memset(H,0,sizeof(H));
		memset(counting,0,sizeof(counting));
		Cdouble=0,SQ=0,DJ=0;
		for(int tmp=1;tmp<=4;tmp++)
		{
			fi>>num[tmp];
			for(int i=1;i<=num[tmp];i++)
			{
				fi>>ch;
				fi>>temp;
				switch(ch)
				{
				case 'C':
					Cdouble=tmp;
					break;
				case 'S':
					SQ=tmp;
					break;
				case 'D':
					DJ=tmp;
					break;
				case 'H':
					H[temp]=tmp;
					break;
				default:
					break;
				}
			}
		}
		if(num[1]==0&&num[2]==0&&num[3]==0&&num[4]==0)return 0;
		work();
	}
	return 0;
}