思路
枚举三种能够得到该颜色的方法。
- 全是该颜色的卡牌。
- 另外两种卡牌的数量都大于等于一张。
- 另外的两种卡牌,一种大于等于两张,一种为零张,该颜色的卡牌大于等于一张。
我们用三个变量来记录每种卡牌出现的次数,然后按照以上的三种方法模拟即可。
AC 代码
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int n,r,b,g;
char a;
int main(){
// freopen("text.in","r",stdin);
// freopen("text.out","w",stdout);
ios::sync_with_stdio(0),cout.tie(0),cin.tie(0);
cin>>n;
for(int i = 1;i <= n;i++){
cin>>a;
if(a == 'R')r++;
if(a == 'G')g++;
if(a == 'B')b++;
}
if(b==n||(b==0 && g && r)||(g > 1 && r==0 &&b)||(g==0&& r>1 &&b)){
cout<<"B";
}
if(g==n||(g==0 && b && r)||(b>1 && r==0 && g)||(b==0 && r>1 &&g)){
cout<<"G";
}
if(r==n||(r==0 && b && g)||(b>1 && g==0 && r)||(b==0 && g>1 && r)){
cout<<"R";
}
return 0;
}
标签:cout,int,题解,卡牌,++,&&,Cards,CF626B
From: https://www.cnblogs.com/zenoszheng/p/18619974