题目描述
有一个叫 \text{Belote}Belote 的纸牌游戏,游戏只用到 A
,K
,Q
,J
,T
,9
,8
,7
共八种纸牌。 游戏规则就是将所有纸牌的值加起来,看看谁的值较大,谁就赢。每种纸牌的值都有两种,当其为特殊牌时有一个值,非特殊牌时也有一个值。每种卡牌的值见下表:
现在 \text{Mirko}Mirko 有 4\times N4×N 张纸牌,并已知特殊牌的属性为 BB,请计算 \text{Mirko}Mirko 所有纸牌值的总和。
输入格式
第一行包含整数 NN 和字符 BB。
接下来 4\times N4×N 行,每行包含两个字符。第一个字符为这张纸牌的种类,第二个字符为这张纸牌的属性。若这张纸牌的属性 =B=B,则说明这张纸牌为特殊牌。
输出格式
输出一个整数,为所有纸牌值的总和。
输入输出样例
输入 #1
2 S TH 9C KS QS JS TD AD JH
输出 #1
60
输入 #2
4 H AH KH QH JH TH 9H 8H 7H AS KS QS JS TS 9S 8S 7S
输出 #2
92
说明/提示
【样例 2 解释】
纸牌值总和为 11 + 4 + 3 + 20 + 10 + 14 + 0 + 0 + 11 + 4 + 3 + 2 + 10 + 0 + 0 + 0 = 9211+4+3+20+10+14+0+0+11+4+3+2+10+0+0+0=92。
【数据范围】
对于 100\%100% 的数据,1\le N\le 1001≤N≤100,BB 和所有纸牌的属性都属于 S
,H
,D
,C
四种字符中的一种,所有纸牌的种类都属于 A
,K
,Q
,J
,T
,9
,8
,7
共八种纸牌中的一种。
【题目来源】
题目译自 COCI 2015-2016 CONTEST #6 T1 BELA。
本题分值按 COCI 原题设置,满分 50。
#include <iostream>
using namespace std;
char sa[8] = {'A', 'K', 'Q', 'J', 'T', '9', '8', '7'};
int normal[8] = {11, 4, 3, 2, 10, 0, 0, 0,};
int teshu[8] = {11, 4, 3, 20, 10, 14, 0, 0};
unsigned long long sum;
int main(){
short n;
cin >> n;
char aim;
cin >> aim;
n = n * 4;
while(n--){
string tmp;
cin >> tmp;
if(tmp[1] == aim){
for(int i=0; i<8; i++){
if(sa[i] == tmp[0]){
sum += teshu[i];
break;
}
}
}
else{
for(int i=0; i<8; i++){
if(sa[i] == tmp[0]){
sum += normal[i];
break;
}
}
}
}
cout << sum << endl;
return 0;
}