結果
| 問題 |
No.38 赤青白ブロック
|
| コンテスト | |
| ユーザー |
bal4u
|
| 提出日時 | 2019-06-30 22:07:02 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 111 ms / 5,000 ms |
| コード長 | 685 bytes |
| コンパイル時間 | 889 ms |
| コンパイル使用メモリ | 29,696 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-06 21:53:48 |
| 合計ジャッジ時間 | 3,857 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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, w, 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, w = 0;
while (*p) {
while (*p == 'W') *q++ = 'W', w++, p++;
if (*p == 'R') {
if (j & 1) {
if (*(q-kr) == 'R') goto done;
*q++ = 'R';
}
} else {
if (j & 1) {
if (*(q-kb) == 'B') goto done;
*q++ = 'B';
}
}
if (!(j >>= 1)) break;
p++;
}
q += 10 - w;
if (q-s > ans) ans = q-s;
done:;
}
printf("%d\n", ans-ST);
return 0;
}
bal4u