AC日记——石头剪刀布 openjudge 1.6 08

08:石头剪刀布

总时间限制: 
1000ms

内存限制: 
65536kB
描述

石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。

一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环的。请问,小A和小B比了N轮之后,谁赢的轮数多?

输入
输入包含三行。
第一行包含三个整数:N,NA,NB,分别表示比了N轮,小A出拳的周期长度,小B出拳的周期长度。0 < N,NA,NB < 100。
第二行包含NA个整数,表示小A出拳的规律。
第三行包含NB个整数,表示小B出拳的规律。
其中,0表示“石头”,2表示“剪刀”,5表示“布”。相邻两个整数之间用单个空格隔开。
输出
输出一行,如果小A赢的轮数多,输出A;如果小B赢的轮数多,输出B;如果两人打平,输出draw。
样例输入
10 3 4
0 2 5
0 5 0 2
样例输出
A
提示
对于测试数据,猜拳过程为:
A:0 2 5 0 2 5 0 2 5 0
B:0 5 0 2 0 5 0 2 0 5
A赢了4轮,B赢了2轮,双方打平4轮,所以A赢的轮数多

思路

  模拟;

来,上代码:

#include<cstdio>

using namespace std;

int n,na,nb,ca[101],cb[101],ans_a,ans_b,now_a=0,now_b=0;

int main()
{
    scanf("%d%d%d",&n,&na,&nb);
    for(int i=1;i<=na;i++) scanf("%d",&ca[i]);
    for(int i=1;i<=nb;i++) scanf("%d",&cb[i]);
    for(int i=1;i<=n;i++)
    {
        now_a++,now_b++;
        if(now_a>na) now_a=1;
        if(now_b>nb) now_b=1;
        if(ca[now_a]==0&&cb[now_b]==2) ans_a++;
        if(ca[now_a]==0&&cb[now_b]==5) ans_b++;
        if(ca[now_a]==2&&cb[now_b]==0) ans_b++;
        if(ca[now_a]==2&&cb[now_b]==5) ans_a++;
        if(ca[now_a]==5&&cb[now_b]==0) ans_a++;
        if(ca[now_a]==5&&cb[now_b]==2) ans_b++;
    }
    if(ans_a>ans_b) printf("A\n");
    else
    {
        if(ans_a<ans_b) printf("B\n");
        else
        {
            printf("draw\n");
        }
    }
    return 0;
}
时间: 2024-10-28 03:58:08

AC日记——石头剪刀布 openjudge 1.6 08的相关文章

AC日记——Aragorn&#39;s Story HDU 3966

Aragorn's Story Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10510    Accepted Submission(s): 2766 Problem Description Our protagonist is the handsome human prince Aragorn comes from The Lor

AC日记——字符替换 openjudge 1.7 08

08:字符替换 总时间限制:  1000ms 内存限制:  65536kB 描述 把一个字符串中特定的字符全部用给定的字符替换,得到一个新的字符串. 输入 只有一行,由一个字符串和两个字符组成,中间用单个空格隔开.字符串是待替换的字符串,字符串长度小于等于30个字符,且不含空格等空白符:接下来一个字符为需要被替换的特定字符:接下来一个字符为用于替换的给定字符. 输出 一行,即替换后的字符串. 样例输入 hello-how-are-you o O 样例输出 hellO-hOw-are-yOu 来源

AC日记——删除单词后缀 openjudge 1.7 20

20:删除单词后缀 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个单词,如果该单词以er.ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作. 输入 输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32). 输出 输出按照题目要求处理后的单词. 样例输入 referer 样例输出 refer 来源 北京大学医学部计算概论08期末考试题 思路: 得了吧,水题一个: 来,上代码: #include<cstdio>

AC日记——矩阵交换行 openjudge 1.8 01

01:矩阵交换行 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个5*5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果. 输入 输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开.第6行包含两个整数m.n,以一个空格分开.(1 <= m,n <= 5) 输出 输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开. 样例输入 1 2 2 1 2 5 6 7 8 3 9 3 0

AC日记——紧急措施 openjudge 1.7 22

22:紧急措施 总时间限制:  1000ms 内存限制:  65536kB 描述 近日,一些热门网站遭受黑客入侵,这些网站的账号.密码及email的数据惨遭泄露.你在这些网站上注册若干账号(使用的用户名不一定相同),但是注册时使用了相同的email.你此时拿到了那份泄露的数据,希望尽快将自己的密码更改.策略如下:根据email找到你的用户名和密码,然后更改密码.更改的规则为:小写和大写交换,非字母字符保持不变. 输入 第一行为你的email地址,长度不超过50个字符且只包含字母.数字和‘@’符号

AC日记——单词的长度 openjudge 1.7 24

24:单词的长度 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度. 注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分.没有被空格间开的符号串,都算作单词. 输入 一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔.单词序列总长度不超过1000. 输出 依次输出对应单词的长度,之间以逗号间隔. 样例输入 She was born in 1990-01-02

AC日记——验证字串 openjudge 1.7 18

18:验证子串 总时间限制:  1000ms 内存限制:   65536kB 描述 输入两个字符串,验证其中一个串是否为另一个串的子串. 输入 输入两个字符串, 每个字符串占一行,长度不超过200且不含空格. 输出 若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2) 否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1) 否则,输出 No substring. 样例输入 abc dddncabca 样例输出 ab

AC日记——判断字符串是否为回文 openjudge 1.7 33

33:判断字符串是否为回文 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一个字符串,输出该字符串是否回文.回文是指顺读和倒读都一样的字符串. 输入 输入为一行字符串(字符串中没有空白字符,字符串长度不超过100). 输出 如果字符串是回文,输出yes:否则,输出no. 样例输入 abcdedcba 样例输出 yes 思路: 模拟: 来,上代码: #include<cstdio> #include<string> #include<cstring>

AC日记——行程长度编码 openjudge 1.7 32

32:行程长度编码 总时间限制:  1000ms 内存限制:  65536kB 描述 在数据压缩中,一个常用的途径是行程长度压缩.对于一个待压缩的字符串而言,我们可以依次记录每个字符及重复的次数.这种压缩,对于相邻数据重复较多的情况比较有效. 例如,如果待压缩串为"AAABBBBCBB",则压缩的结果是(A,3)(B,4)(C,1)(B,2).当然,如果相邻字符重复情况较少,则压缩效率就较低. 现要求根据输入的字符串,得到大小写不敏感压缩后的结果(即所有小写字母均视为相应的大写字母).