結果
問題 | No.204 ゴールデン・ウィーク(2) |
ユーザー |
![]() |
提出日時 | 2015-05-08 22:44:50 |
言語 | C++11 (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,800 bytes |
コンパイル時間 | 509 ms |
コンパイル使用メモリ | 66,536 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-13 11:37:15 |
合計ジャッジ時間 | 1,639 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 WA * 25 |
ソースコード
#include <iostream>#include <vector>#include <cmath>#include <numeric>#include <climits>#include <array>#define REP(i, n) for(int i=0;i<(n);i++)using namespace std;int main() {cin.tie(0);ios::sync_with_stdio(false);int D;cin >> D;std::array<char, 14> arr;REP(i, 14) {cin >> arr[i];}vector<pair<char, int>> days;int i = 0;int j = 0;for(auto d: arr) {if (d == 'o') {if (j > 0) {days.emplace_back('x', j);j = 0;}i++;} else {if (i > 0) {days.emplace_back('o', i);i = 0;}j++;}}if (i > 0) {days.emplace_back('o', i);i = 0;}if (j > 0) {days.emplace_back('x', j);j = 0;}int idx = 0;int m = 0;while (idx < days.size()) {if (days[idx].first == 'o') {int k = days[idx].second;if (idx + 1 < days.size()) {k += min(D, days[idx+1].second);if (days[idx+1].second <= D && idx + 2 < days.size()) {k += days[idx + 2].second;}}m = max(m, k);idx++;} else {int k = 0;if (days[idx].second <= D) {k += days[idx].second;if(idx + 1 < days.size()) {k += days[idx + 1].second;}} else {k += D;if (idx + 1 < days.size()) {k += days[idx + 1].second;}}m = max(m, k);idx++;}}cout << m << endl;return 0;}