https://www.facebook.com/hackercup/problem/656203948152907/
提出先
解説
https://codeforces.com/gym/102249/submission/55747583
A以降のマスの個数をn, 最小限必要なBの個数をbとすると、以下のような表になる。
n b 2 1 3 2 4 2 5 3 6 3
これをみると、n/2の切り上げが最小限必要な個数となっている。
よって、それよりBの個数が少ないならN, N=1のときはどうやっても無理なのでN。
あと、A以降のマスが全てBで埋まっている場合もN。
それ以外はYになる。
string S; //--------------------------------------------------------------------------------------------------- #define yes "Y" #define no "N" string solve() { cin >> S; int n = S.length() - 1; int b = 0; fore(c, S) if (c == 'B') b++; if (n == 1) return no; if (b == n) return no; if (b < (n + 1) / 2) return no; return yes; } //--------------------------------------------------------------------------------------------------- void _main() { int T; cin >> T; rep(t, 0, T) printf("Case #%d: %s\n", t + 1, solve().c_str()); }