比赛 |
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;
}