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的数量
  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;
  }
 }
 return 0;
}
 
一开始没理解题意,不知道输入的数字分别是哪个人的
posted @ 2019-10-01 22:44  晴屿  阅读(167)  评论(0编辑  收藏  举报