結果
問題 |
No.38 赤青白ブロック
|
ユーザー |
![]() |
提出日時 | 2019-06-30 21:57:09 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 106 ms / 5,000 ms |
コード長 | 667 bytes |
コンパイル時間 | 299 ms |
コンパイル使用メモリ | 29,568 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-06 21:23:40 |
合計ジャッジ時間 | 4,040 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
ソースコード
// yukicoder: No.38 赤青白ブロック // 2019.6.30 bal4u #include <stdio.h> #define ST 35 #define LIM (1<<20) int kr, kb; char S[32], s[70]; int main() { int i, j, ans; char *p, *q; scanf("%d%d", &kr, &kb); scanf("%s", S); ans = 0; i = LIM; while (i--) { j = i, p = S, q = s + ST; while (*p) { if (*p == 'W') *q++ = 'W'; else if (*p == 'R') { if (j & 1) { if (*(q-kr) == 'R') goto done; *q++ = 'R'; } j >>= 1; } else if (*p == 'B') { if (j & 1) { if (*(q-kb) == 'B') goto done; *q++ = 'B'; } j >>= 1; } p++; } if (q-s > ans) ans = q-s; done:; } printf("%d\n", ans-ST); return 0; }