题解:CF626B Cards

思路

枚举三种能够得到该颜色的方法。

  • 全是该颜色的卡牌。
  • 另外两种卡牌的数量都大于等于一张。
  • 另外的两种卡牌,一种大于等于两张,一种为零张,该颜色的卡牌大于等于一张。

我们用三个变量来记录每种卡牌出现的次数,然后按照以上的三种方法模拟即可。

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;
}
posted @ 2024-12-20 21:04  Zenos_iii  阅读(5)  评论(0)    收藏  举报