当前位置: 代码迷 >> 综合 >> Comet OJ-2019六一欢乐赛 D武士少年的挑战!
  详细解决方案

Comet OJ-2019六一欢乐赛 D武士少年的挑战!

热度:57   发布时间:2024-01-09 04:09:33.0

本文为博主原创文章,未经博主允许不得转载。

题目描述

收服绿毛虫后,小智一行继续在常磐森林里往尼比市的方向前进,小霞一路上都在大惊小怪。这时,小智发现了独角虫,他打算靠皮卡丘来收服独角虫,可是皮卡丘却懒得搭理。小霞非常讨厌虫子,远远的逃开,却碰见一个身着武士铠甲的少年。这位武士少年似乎在寻找真新镇的训练师,他的目的是什么呢?与此同时,小智还在设法收服独角虫,丝毫不知道自己被人盯上了……

武士少年将他的剑指向小智,扬言说要跟小智用宝可梦进行决斗,此时独角虫偷偷溜走了,小智很生气,决定接受武士少年的挑战。

两轮比赛下来…..仍未分出胜负,而此时双方派上场的宝可梦都是铁甲蛹 (铁甲蛹是由绿毛虫进化而来的),不会跑,只会变硬,于是一直在僵持着。旁边的小霞已经无聊至极,她拿出一副扑克牌,"喂,那边那两个,来陪我打牌!" 小智和武士少年也觉得有点无聊了,于是走到小霞身边坐了下来。

小霞清了清嗓子,说:" 我们来玩一扑克牌游戏,一副牌有 54 张,1?13每种数字 4张,鬼牌是数字 0,有两张,我们三个人玩,所以每人初始拿到的牌 18,如果拿到的牌里有相同的数字,就要丢掉两张,但是鬼牌不能丢,最后谁剩的牌最少谁就赢。"

小智举起了手:"请问,如果拿到的相同牌大于两张可以全部扔掉吗?"

小霞:"相同的牌数只有 2张,3 张,4 张三种可能,2张和 4张的时候可以全部扔掉,3 张的时候只能扔掉2 张"。

武士少年也举起了手 : "请问,如果拿到两张鬼牌可以扔掉吗?"

小霞 : "不行,鬼牌是特殊的,多少张都不能扔掉!"

大家貌似都弄懂了规则,于是小霞开始发牌….

聪明的你理解规则了吗?现在假设你是三个人打牌中的一个,给你初始的牌,请算出你最后剩下几张牌。

输入描述

 

输入一行 18个数字,0代表鬼牌,1?13 是正常的扑克牌的数字。 0 最多只会出现两个,1?13中每个数字至多只会出现四个。

输出描述

 

输出一行表示最后剩几张牌。

样例输入 1

1 1 4 5 1 4 5 6 8 9 0 0 12 13 13 13 11 10

样例输出 1

10

提示

样例可以丢出的牌有两张 1、两张 4、两张 5、两张 13,共丢出了 8 张,所以共剩下 18?8=10 张牌。 鬼牌(数字 0) 虽然有 2 张,但不能丢弃。

#include<stdio.h>
int main()
{int a[14]={0};int i=0,num,sum=0;for(i=0;i<18;i++){scanf("%d",&num);a[num]++;}for(i=1;i<14;i++){if((a[i]==2)||a[i]==4)sum+=0;else if(a[i]==3)sum++;else if(a[i]==1)sum++;}printf("%d",sum+a[0]);return 0;
} 

 

  相关解决方案