8VC Venture Cup 2016 - Elimination Round B. Cards
B. Cards
入力中のR
G
B
の出現回数だけ考えればよい。
R
が作れるかを考える。入力は以下のように場合分けできる。
- 空の場合
- 与えられない
R
のみの場合- 作れる
G
もB
も含まれる場合- 作れる。
G
B
をそれぞれ残り1枚に圧縮してからR
に
- 作れる。
G
かB
のいずれか一方のみ含まれる場合- それが1枚のみの場合
作れない。非
R
なカードをどうやっても消せない - それが2枚以上の場合
作れる。
G
もB
も含まれる場合に遷移できる
- それが1枚のみの場合
作れない。非
#!/usr/bin/env python3
n = int(input())
s = input()
t = 'BGR'
cnt = [s.count(c) for c in t]
ans = ''
for i in range(3):
a, b, c = cnt[i], cnt[(i+1)%3], cnt[(i+2)%3]
if (a >= 1 and b == c == 0) or (b >= 1 and c >= 1) or (a >= 1 and (b >= 2 or c >= 2)):
ans += t[i]
print(ans)