博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NOI 08 石头剪刀布
阅读量:5155 次
发布时间:2019-06-13

本文共 1576 字,大约阅读时间需要 5 分钟。

石头剪刀布(NOI 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

 

1 #include
2 using namespace std; 3 4 int a[105]; 5 int b[105]; 6 7 int main() 8 { 9 //freopen("D:\\txt.txt", "r", stdin);10 int n, x, y;11 while (cin >> n >> x >> y)12 {13 int a_win = 0, b_win = 0;14 for (int i = 1; i <= x; i++)15 cin >> a[i];16 for (int i = 1; i <= y; i++)17 cin >> b[i];18 for (int i = 1; i <= n; i++)19 {20 a[i] = a[(i - 1) % x + 1];21 b[i] = b[(i - 1) % y + 1];22 //cout << a[i] << " " << b[i] << endl;23 if (a[i] == 0 && b[i] == 2) a_win++;24 else if (a[i] == 0 && b[i] == 5) b_win++;25 else if (a[i] == 2 && b[i] == 0) b_win++;26 else if (a[i] == 2 && b[i] == 5) a_win++;27 else if (a[i] == 5 && b[i] == 0) a_win++;28 else if (a[i] == 5 && b[i] == 2) b_win++;29 }30 if (a_win > b_win) cout << "A" << endl;31 else if (a_win < b_win) cout << "B" << endl;32 else cout << "draw" << endl;33 }34 }

 

转载于:https://www.cnblogs.com/zyb993963526/p/6344018.html

你可能感兴趣的文章
关于我
查看>>
Buffer.from(str[, encoding])
查看>>
GitHub 的简单使用
查看>>
【转】MySQL常用命令总结
查看>>
Sed简单入门实例
查看>>
SQL 去除重复、获取最新记录
查看>>
vue中 v-show和v-if的区别?
查看>>
汇编小事一二三
查看>>
CVS/SVN/GIT
查看>>
网站时间显示——基于Date
查看>>
Java读取Properties文件的六种方法
查看>>
【noip2011】【codevs1137】计算系数
查看>>
IFC2x3标准阅读
查看>>
php简单了解
查看>>
spring boot 自定义过滤器链
查看>>
刷新当前页
查看>>
最大乘积 Maximun Product
查看>>
移动站适配rel=alternate PC页和H5页适配标注
查看>>
计算机编程之高级语言
查看>>
简单布局
查看>>