結果
問題 |
No.204 ゴールデン・ウィーク(2)
|
ユーザー |
|
提出日時 | 2015-05-08 22:35:35 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,632 bytes |
コンパイル時間 | 1,352 ms |
コンパイル使用メモリ | 165,876 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-13 11:30:28 |
合計ジャッジ時間 | 2,545 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 14 WA * 32 |
ソースコード
#include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); i++) #define fr(i, a, b) for (int i = (a); i < (b); i++) using namespace std; typedef long long ll; const ll inf = 1e9; const ll mod = 1e9 + 7; typedef pair<int, int> P; class RLE { public: vector<P> encode(vector<int> v) { vector<P> res; P p(v[0], 1); for (int i = 1; i < v.size(); i++) { if (p.first == v[i]) { p.second++; } else { res.push_back(p); p = make_pair(v[i], 1); } } res.push_back(p); return res; } }; int main() { string s[2]; int D; cin >> D; cin >> s[0] >> s[1]; string w = s[0] + s[1]; RLE rle; vector<int> u; rep (i, 14) { u.push_back(w[i] == 'o'); } vector<P> v = rle.encode(u); int ans = 0; for (int i = 0; i < v.size(); i++) { if (v[i].first == 0) { if (v[i].second >= D) { int temp = D; int temp2 = D; if (v[i].second == D && i + 1 < v.size()) { temp += v[i + 1].second; } if (v[i].second == D && i - 1 >= 0) { temp2 += v[i - 1].second; } if (i - 1 >= 0) { temp += v[i - 1].second; } if (i + 1 < v.size()) { temp2 += v[i + 1].second; } ans = max(ans, temp); ans = max(ans, temp2); } } } cout << ans << endl; }