比赛 20110928 评测结果 WAAAAAAAAW
题目名称 拱猪计分 最终得分 80
用户昵称 临轩听雨ゐ 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-09-28 20:57:55
显示代码纯文本
#include <fstream>
using namespace std;
ifstream fin("heart.in");
ofstream fout("heart.out");
int i,j,k;
int num=0,n,card[5][20],mark[5]={0};
char f;
bool p()
{
	int a,b=0;
	for(a=1;a<=num;a++)
	{
		if(card[2][a]==0)	return false;
		if(card[2][a]==1)	b++;
	}	
	if(b==13)	return true;
}

bool pp()
{
	int y;
	for(y=0;y<4;y++)
		if(mark[y]!=0)	return true;
	return false;
}

int calculate()
{
	int x=0;
	x=card[2][1]*50+card[2][2]*2+card[2][3]*3+card[2][4]*4+card[2][5]*5+card[2][6]*6+card[2][7]*7;
	x=x+card[2][8]*8+card[2][9]*9+card[2][10]*10+card[2][11]*20+card[2][12]*30+card[2][13]*40;
	x=x*(-1);
	return x;
}


void init()
{
	for(i=0;i<4;i++)
	{
		for(j=0;j<5;j++)
			for(k=0;k<20;k++)
				card[j][k]=0;
		fin>>num;
		for(k=0;k<num;k++)
		{
			fin>>f>>n;
			if(f=='S')	card[1][n]++;
			if(f=='H')	card[2][n]++;
			if(f=='D')	card[3][n]++;
			if(f=='C')	card[4][n]++;
		}
		if(num!=0)
		{
			if(p())
			{
				mark[i]=200;
				if(card[1][12]==1&&card[3][11]!=1) mark[i]=100;
				if(card[3][11]==1&&card[1][12]!=1) mark[i]=300;
				if(card[1][12]==1&&card[3][11]==1)	mark[i]=500;
				if(card[4][10]==1)	mark[i]=mark[i]*2;
			}
			else
			{
				if(num==1&&card[4][10]==1)	mark[i]=50;
				else
				{
					if(card[4][10]==1)
					mark[i]=(card[1][12]*(-100)+card[3][11]*100+calculate())*2;
					else	mark[i]=card[1][12]*(-100)+card[3][11]*100+calculate();
				}
			}
		}
	}
		if(pp())
	{
		for(j=0;j<4;j++)
		{
			if(mark[j]<=0) fout<<mark[j]<<' ';
			if(mark[j]>0) fout<<'+'<<mark[j]<<' ';
		}
		fout<<endl;
		for(i=0;i<4;i++)
			mark[i]=0;
		init();
	}
}

int main()
{
	init();

	return 0;
}