結果
| 問題 |
No.38 赤青白ブロック
|
| コンテスト | |
| ユーザー |
bal4u
|
| 提出日時 | 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;
}
bal4u