標籤:技術分享 clu nbsp bsp 空格 log 統計 test 規則
1018. 鎚子剪刀布 (20)
大家應該都會玩“鎚子剪刀布”的遊戲:兩人同時給出手勢,勝負規則:
現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。
輸入格式:
輸入第1行給出正整數N(<=105),即雙方交鋒的次數。隨後N行,每行給出一次交鋒的資訊,即甲、乙雙方同時給出的的手勢。C代表“鎚子”、J代表“剪刀”、B代表“布”,第1個字母代表甲方,第2個代表乙方,中間有1個空格。
輸出格式:
輸出第1、2行分別給出甲、乙的勝、平、負次數,數字間以1個空格分隔。第3行給出兩個字母,分別代表甲、乙獲勝次數最多的手勢,中間有1個空格。如果解不唯一,則輸出按字母序最小的解。
輸入範例:
10C JJ BC BB BB CC CC BJ BB CJ J
輸出範例:
5 3 22 3 5B B
#include <iostream>#include <iomanip>#include <math.h>#include <stdio.h>#include <string>using namespace std;int main(){ int n; cin >> n; int jia_s[3] = { 0 }; int jia_odds[3] = { 0 }, yi_odds[3] = {0};//手勢獲勝次數 順序b c j char jia_ss[3] = { ‘B‘, ‘C‘, ‘J‘ }, yi_ss[3] = { ‘B‘, ‘C‘, ‘J‘ }; for (int i = 0; i < n; i++) { char jia, yi; cin >> jia >> yi; switch (jia) { case‘C‘: { if (yi == ‘C‘) { jia_s[1] ++; } if (yi == ‘J‘){ jia_s[0]++; jia_odds[1]++; } if (yi == ‘B‘){ jia_s[2]++; yi_odds[0]++; } break; } case‘J‘: { if (yi == ‘J‘) { jia_s[1] ++; } if (yi == ‘B‘){ jia_s[0]++; jia_odds[2]++; } if (yi == ‘C‘){ jia_s[2]++; yi_odds[1]++; } break; } case‘B‘: { if (yi == ‘B‘) { jia_s[1] ++; } if (yi == ‘C‘){ jia_s[0]++; jia_odds[0]++; } if (yi == ‘J‘){ jia_s[2]++; yi_odds[2]++; } break; } default:break; } } cout<< jia_s[0] <<" "<< jia_s[1] <<" " <<jia_s[2] << endl; cout << jia_s[2] << " " << jia_s[1] << " " << jia_s[0] << endl; if ((jia_odds[0] >= jia_odds[1]) && (jia_odds[0] >= jia_odds[2])) cout << "B"; else if (jia_odds[1] >= jia_odds[2]) cout << "C"; else cout << "J"; if ((yi_odds[0] >= yi_odds[1]) && (yi_odds[0] >= yi_odds[2])) cout << " B"; else if (yi_odds[1] >= yi_odds[2]) cout << " C"; else cout << " J"; system("pause"); return 0;}
1018. 鎚子剪刀布 (20)