結果
問題 | No.204 ゴールデン・ウィーク(2) |
ユーザー |
![]() |
提出日時 | 2015-05-08 23:10:41 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,165 bytes |
コンパイル時間 | 1,722 ms |
コンパイル使用メモリ | 160,508 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-24 11:37:43 |
合計ジャッジ時間 | 2,944 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 46 |
ソースコード
#include "bits/stdc++.h" using namespace std; int main() { int D; cin >> D; string s1, s2; cin >> s1 >> s2; s1 += s2; int ans = D; int cnt2 = 0; s1 = "xxxxxxxxxxxxxxxxxxxx" + s1 + "xxxxxxxxxxxxxxxxxxxxxx"; for (int i = 0; i < s1.size(); i++) { if (s1[i] == 'o'){ cnt2++; ans = max(cnt2, ans); } else cnt2 = 0; } if (D == 0){ cout << ans << endl; return 0; } for (int j = 0; j < s1.size(); j++) { int tempans = 0; int cnt = 0; tempans = cnt; int j2 = j; for (int i = 0; i < s1.size(); i++) { if (((i - j2) >= 0 && (i - j2) < D)){ if (s1[i] == 'o'){ //tempans = -10000; //break; cnt++; tempans = max(tempans, cnt); j2 = -10000; } else{ cnt++; tempans = max(tempans, cnt); } } else if (s1[i] == 'o'){ cnt++; tempans = max(tempans, cnt); } else cnt = 0; /* if ((((i - j) >= 0 && (i - j) < D)) || s1[i] == 'o'){ cnt++; tempans = max(tempans, cnt); } else cnt = 0; */ } if (tempans < 0) continue; tempans = max(cnt, tempans); ans = max(ans, tempans); } //ans = min(ans, 14); cout << ans << endl; cin >> ans; }