比赛 20150714B 评测结果 EEEEEEEEEE
题目名称 拱猪计分 最终得分 0
用户昵称 Shirry 运行时间 0.814 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2015-07-14 11:23:04
显示代码纯文本
#include<iostream>
#include<fstream>
using namespace std;
int score(char strlist[]){
    int i,isS=0,isC=0,isD=0,countH=0,Hnum[14],score=0;
    int Hlist[14]={0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};
    for(i=0;strlist[i]!='\0';i++){
        if(strlist[i]=='S') isS=1;
        else if(strlist[i]=='C') isC=1;
        else if(strlist[i]=='D') isD=1;
        else if(strlist[i]=='H'){
			countH++;
            if(strlist[i+2]==' '||strlist[i+2]=='\0') 
				Hnum[countH]=strlist[i+1]-'0';
            else 
				Hnum[countH]=10+strlist[i+2]-'0';
        }
    }
    if(countH==13){                    //H全在一人手中
		score=200;
        if(isS&&isD) score=500;
        else if(isS) score-=100;          //分别有S和D的情况
        else if(isD) score+=100;
    }
    else if(0<=countH&&countH<13){       //H不全在一个人的手中
        for(i=1;i <=countH;i++) score+=Hlist[Hnum[i]];
		if(isS) score-=100;
        if(isD) score+=100;
    }
    if(isC){
        if(isS==0&&isD==0&&countH==0) score=50;  //只有C10的情况
        else score*=2;          //分数加倍
    }
    return score;
}
int main(){
    char strin[4][100];
    int i,j,result[10][4],count=0;
	ifstream cin("heart.in");
	ofstream cout("heart.out");
    while(1)
    {
		for(i=0;i<=3;i++)  
			gets(strin[i]);
		if(strin[0][0]=='0'&&strin[1][0]=='0'&&strin[2][0]=='0'&&strin[3][0]=='0')  
			break;
		for(i=0;i <=3;i++)  
			result[count][i]=score(strin[i]);
		count++;
    }
    for(i=0;i <=count-1;i++)
		for(j=0;j<=3;j++){
			if(j<3){ 
				if(result[i][j]<=0)cout<<result[i][j]<<' ';
				else cout<<"+"<<result[i][j]<<' ';
			}
			else{
				if(result[i][j]<=0)cout<<result[i][j]<<endl;
				else cout<<result[i][j]<<endl;
            }
		}
		cin.close();
		cout.close();
	return 0;
}