Codeforces 626 B. Cards (8VC Venture Cup 2016-Elimination Round)
2 seconds
256 megabytes
standard input
standard output
Catherine has a deck of n cards, each of which is either red, green, or blue. As long as there are at least two cards left, she can do one of two actions:
- take any two (not necessarily adjacent) cards with different colors and exchange them for a new card of the third color;
- take any two (not necessarily adjacent) cards with the same color and exchange them for a new card with that color.
She repeats this process until there is only one card left. What are the possible colors for the final card?
The first line of the input contains a single integer n (1 ≤ n ≤ 200) — the total number of cards.
The next line contains a string s of length n — the colors of the cards. s contains only the characters 'B', 'G', and 'R', representing blue, green, and red, respectively.
Print a single string of up to three characters — the possible colors of the final card (using the same symbols as the input) in alphabetical order.
2
RB
G
3
GRG
BR
5
BBBBB
B
In the first sample, Catherine has one red card and one blue card, which she must exchange for a green card.
In the second sample, Catherine has two green cards and one red card. She has two options: she can exchange the two green cards for a green card, then exchange the new green card and the red card for a blue card. Alternatively, she can exchange a green and a red card for a blue card, then exchange the blue card and remaining green card for a red card.
In the third sample, Catherine only has blue cards, so she can only exchange them for more blue cards.
题意就是两种颜色不同的牌合成一个第三种颜色的牌,两种颜色相同的就合成该颜色的牌,问最后可能的颜色是什么。
要注意一点就是要按字母顺序输出,就是wa在这里了。。。
有以下几种情况:
1.只有一张牌,最后就是这张牌的颜色。
2.两张牌,都是同一种颜色就直接输出了,如果不同就是第三种牌的颜色。
3.多张牌(>2)
1)都是同一种颜色就直接输出了。
2)如果除了一张牌颜色不一样,其他的牌都是一种颜色,最后输出的结果就是这一张牌的颜色和第三种颜色。
3)如果颜色都有或者只有两种颜色,但是每一种颜色的牌数>1,结果就是三种颜色都输出。
要按字母顺序输出!!!
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
char str[250];
int n,b,r,g;
while(~scanf("%d",&n)){
scanf("%s",&str);
b=0;r=0;g=0;
if(n==1) printf("%c\n",str[0]);
else if(n==2){
if(str[0]=='B'&&str[1]=='B') printf("B\n");
else if(str[0]=='G'&&str[1]=='G') printf("G\n");
else if(str[0]=='R'&&str[1]=='R') printf("R\n");
else{
if((str[0]=='B'||str[0]=='G')&&(str[1]=='B'||str[1]=='G')) printf("R\n");
else if((str[0]=='B'||str[0]=='R')&&(str[1]=='B'||str[1]=='R')) printf("G\n");
else if((str[0]=='G'||str[0]=='R')&&(str[1]=='G'||str[1]=='R')) printf("B\n");
}
}
else{
for(int i=0;i<n;i++){
if(str[i]=='B') b++;
if(str[i]=='G') g++;
if(str[i]=='R') r++;
}
if(b==n) printf("B\n");
else if(r==n) printf("R\n");
else if(g==n) printf("G\n");
else if(b+g==n&&b>g&&g==1) printf("GR\n");
else if(b+g==n&&b<g&&b==1) printf("BR\n");
else if(b+r==n&&b>r&&r==1) printf("GR\n");
else if(b+r==n&&b<r&&b==1) printf("BG\n");
else if(g+r==n&&g>r&&r==1) printf("BR\n");
else if(g+r==n&&g<r&&g==1) printf("BG\n");
else printf("BGR\n");
}
}
return 0;
}
Codeforces 626 B. Cards (8VC Venture Cup 2016-Elimination Round)的更多相关文章
- 8VC Venture Cup 2016 - Elimination Round B. Cards 瞎搞
B. Cards 题目连接: http://www.codeforces.com/contest/626/problem/B Description Catherine has a deck of n ...
- codeforces 8VC Venture Cup 2016 - Elimination Round C. Lieges of Legendre
C. Lieges of Legendre 题意:给n,m表示有n个为2的倍数,m个为3的倍数:问这n+m个数不重复时的最大值 最小为多少? 数据:(0 ≤ n, m ≤ 1 000 000, n + ...
- Codeforces 8VC Venture Cup 2016 - Elimination Round F. Group Projects 差分DP*****
F. Group Projects There are n students in a class working on group projects. The students will div ...
- 8VC Venture Cup 2016 - Elimination Round (C. Block Towers)
题目链接:http://codeforces.com/contest/626/problem/C 题意就是给你n个分别拿着2的倍数积木的小朋友和m个分别拿着3的倍数积木的小朋友,每个小朋友拿着积木的数 ...
- 8VC Venture Cup 2016 - Elimination Round G. Raffles 线段树
G. Raffles 题目连接: http://www.codeforces.com/contest/626/problem/G Description Johnny is at a carnival ...
- 8VC Venture Cup 2016 - Elimination Round F. Group Projects dp
F. Group Projects 题目连接: http://www.codeforces.com/contest/626/problem/F Description There are n stud ...
- 8VC Venture Cup 2016 - Elimination Round E. Simple Skewness 暴力+二分
E. Simple Skewness 题目连接: http://www.codeforces.com/contest/626/problem/E Description Define the simp ...
- 8VC Venture Cup 2016 - Elimination Round D. Jerry's Protest 暴力
D. Jerry's Protest 题目连接: http://www.codeforces.com/contest/626/problem/D Description Andrew and Jerr ...
- 8VC Venture Cup 2016 - Elimination Round C. Block Towers 二分
C. Block Towers 题目连接: http://www.codeforces.com/contest/626/problem/C Description Students in a clas ...
随机推荐
- [C/C++] static在C和C++中的用法和区别
转自:http://blog.csdn.NET/skyereeee/article/details/8000512 static的三个作用: (1)局部静态变量 (2)外部静态变量/函数 (3)静态数 ...
- 【题解】CQOI2017老C的方块
网络流真的是一种神奇的算法.在一张图上面求感觉高度自动化的方案一般而言好像都是网络流的主阵地.讲真一开始看到这道题也有点懵,题面很长,感觉很难的样子.不过,仔细阅读了题意之后明白了:我们所要做的就是要 ...
- 洛谷 P2480 [SDOI2010]古代猪文 解题报告
P2480 [SDOI2010]古代猪文 题目背景 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" ...
- 怎么把linux的磁盘映射到windows上
步骤如下: 右击如下的computer: 然后选择:Map network drive... 然后在下图按图中所示操作: 最后成功如下图所示:
- Socket和ServerSocket学习笔记
对于即时类应用或者即时类的游戏,HTTP协议很多时候无法满足于我们的需求.这会,Socket对于我们来说就非常实用了.下面是本次学习的笔记.主要分异常类型.交互原理.Socket.ServerSock ...
- JAVASCRIPT和JSP计算闰年
0x01:JAVASCRIPT 实现 <h1 align="left">求闰年</h1> 开始年份: <input type="text&q ...
- 使用vue做移动app时,调用摄像头扫描二维码
现在前端技术发展飞快,前端都能做app了,那么项目中,也会遇到调用安卓手机基层的一些功能,比如调用摄像头,完成扫描二维码功能 下面我就为大家讲解一下,我在项目中调用这功能的过程. 首先我们需要一个中间 ...
- 小程序根据input输入,动态设置按钮的样式
[需求]实现当手机号已填写和协议已勾选时,“立即登录”按钮变亮,按钮可点击:若有一个不满足,按钮置灰,不可点击:实现获取短信验证码,倒计时提示操作:对不满足要求内容进行toast弹窗提示. <v ...
- 解决mysql报错:- Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ'
mysql执行报错: - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c ...
- codeforce C. Okabe and Boxes
题目传送门 这道题 每次删除一个点 那么这个点必然在栈里面 那么如果堆顶不是他 我们就需要一次操作使得堆合理 这时我们可以把他删除然后把他下面的点打个标记表示这下面的点以后想怎么排就怎么排以后都不需要 ...