首页 > 其他 > 详细

2017/9/3模拟赛T1

时间:2017-09-04 14:05:10      阅读:304      评论:0      收藏:0      [点我收藏+]

技术分享

题解:这题是一道判断题,分5种情况讨论,以下为了方便以ABC为例

①若只有A,答案为A

②若A、B、C都有,答案为ABC

③若只有AB,答案为C

④若AAB式,答案为BC

⑤若只有A、B且AB均大等于2,答案为ABC

代码如下:

 

 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 int n,cnt[3],cur;
 5 char a[205];
 6 bool pd(){
 7     for(int i=0;i<=2;i++) if(cnt[i]>=2) cur++;
 8     if(cur>=2) return true;
 9     return false;
10 }
11 int main()
12 {
13     freopen("card.in","r",stdin);
14     freopen("card.out","w",stdout);
15     scanf("%d\n",&n);
16     for(int i=1;i<=n;i++){
17         scanf("%c",&a[i]);
18         if(a[i]==B) cnt[0]++;
19         else if(a[i]==G) cnt[1]++;
20         else cnt[2]++;
21     }
22     if(cnt[0]&&!cnt[1]&&!cnt[2]){printf("B");return 0;}
23     if(cnt[1]&&!cnt[0]&&!cnt[2]){printf("G");return 0;}
24     if(cnt[2]&&!cnt[0]&&!cnt[1]){printf("R");return 0;}
25     if(cnt[0]==1&&cnt[1]==1&&!cnt[2]){printf("R");return 0;}
26     if(cnt[1]==1&&cnt[2]==1&&!cnt[0]){printf("B");return 0;}
27     if(cnt[0]==1&&cnt[2]==1&&!cnt[1]){printf("G");return 0;}
28     if(cnt[0]&&cnt[1]&&cnt[2]){printf("BGR");return 0;}
29     if(cnt[0]>=2&&cnt[1]==1&&!cnt[2]){printf("GR");return 0;}
30     if(cnt[1]>=2&&cnt[0]==1&&!cnt[2]){printf("BR");return 0;}
31     if(cnt[1]>=2&&cnt[2]==1&&!cnt[0]){printf("BR");return 0;}
32     if(cnt[2]>=2&&cnt[1]==1&&!cnt[0]){printf("BG");return 0;}
33     if(cnt[0]>=2&&cnt[2]==1&&!cnt[1]){printf("GR");return 0;}
34     if(cnt[2]>=2&&cnt[0]==1&&!cnt[1]){printf("BG");return 0;}
35     if(pd()){printf("BGR");return 0;}
36 }

 

2017/9/3模拟赛T1

原文:http://www.cnblogs.com/Beginner-/p/7473145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!