Skip to content

L1-044 稳赢

Statement

Metadata

  • 作者: 陈越
  • 单位: 浙江大学
  • 代码长度限制: 16 KB
  • 时间限制: 400 ms
  • 内存限制: 64 MB

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。

输入格式

输入首先在第一行给出正整数K\le 10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。

输出格式

对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。

输入样例

2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End

输出样例

Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu

Solution

#include <ctype.h>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
using namespace std;

typedef long long LL;
const double PI = 3.14159265358979323846264338327;
const double E = 2.718281828459;
const double eps = 1e-6;
const int MAXN = 0x3f3f3f3f;
const int MINN = 0xc0c0c0c0;
const int maxn = 1e5 + 5;
const int MOD = 1e9 + 7;

int main() {
    map<string, string> m;
    m["ChuiZi"] = "Bu";
    m["Bu"] = "JianDao";
    m["JianDao"] = "ChuiZi";
    int k;
    cin >> k;
    k++;
    string s;
    for (int i = 1;; i++) {
        cin >> s;
        if (s == "End")
            break;
        else {
            if (i % k == 0)
                cout << s << endl;
            else
                cout << m[s] << endl;
        }
    }
}

Last update: May 4, 2022
Back to top