19新生赛 棋子
新疆大学ACM协会最新研发了一款自走棋,hh和hhs两人正在兴致勃勃的对弈。以 下是自走棋的规则:
一共有10种棋子,每种棋子编号1-10 2. 每一秒钟hh和hhs可以各自获得一个棋子,hhs先拿棋子,hh后拿棋子 3. 如果某种棋子的数量达到3则该棋子自动升级,编号+1,数量降到1 4. 若有一方先获得了编号11的棋子,则输出该人的名字+nb,并且游戏结束
输入
输入n个数字ai(1<=ai <=10),n为偶数
输出
输出胜利人的名字+nb
样例输入
10 10 10 9 10 9
① ② ① ② ① ②
样例输出
hhsnb
代码
#include<bits/stdc++.h>
using namespace std;
const int N=12;
int arr1[N];
int arr2[N];
int a,b;
int main() {
while(scanf("%d%d",&a,&b)==2) { // ==2 确保输入了两个数才往下进行
arr1[a]++; // 数字为a的数量
arr2[b]++; //数字为b的数量
using namespace std;
const int N=12;
int arr1[N];
int arr2[N];
int a,b;
int main() {
while(scanf("%d%d",&a,&b)==2) { // ==2 确保输入了两个数才往下进行
arr1[a]++; // 数字为a的数量
arr2[b]++; //数字为b的数量
for(int i=1; i<=10; ++i) {
if(arr1[i]==3) {
arr1[i]=0;
arr1[i+1]++; //够三个的时候 升级 然后清零
}
if(arr2[i]==3) {
arr2[i]=0;
arr2[i+1]++;
}
}
if(arr1[11]) {
printf("hhsnb");
break; //判断是否到11
}
if(arr2[11]) {
printf("hhnb");
break;
}
}
if(arr1[i]==3) {
arr1[i]=0;
arr1[i+1]++; //够三个的时候 升级 然后清零
}
if(arr2[i]==3) {
arr2[i]=0;
arr2[i+1]++;
}
}
if(arr1[11]) {
printf("hhsnb");
break; //判断是否到11
}
if(arr2[11]) {
printf("hhnb");
break;
}
}
return 0;
}
}
一开始没理解题意,不知道输入的数字分别是哪个人的