提出 #18997834
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using II = pair<int, int>;
int main()
{
int n;
cin >> n;
vector<II> stone_vec;
int nc;
cin >> nc;
stone_vec.push_back({nc, 1});
for (int i = 1; i < n; ++i) {
cin >> nc;
auto pr = *stone_vec.rbegin();
int c = pr.first, l = pr.second;
if (c == nc) {
*stone_vec.rbegin() = {c, l + 1};
continue;
}
if (i % 2 == 0)
stone_vec.push_back({nc, 1});
else if (stone_vec.size() == 1)
*stone_vec.rbegin() = {nc, l + 1};
else {
stone_vec.pop_back();
auto pr2 = *stone_vec.rbegin();
int l2 = pr2.second;
*stone_vec.rbegin() = {nc, l2 + l + 1};
}
}
int sum = 0;
for (auto pr : stone_vec) {
int c = pr.first, l = pr.second;
if (c == 0)
sum += l;
}
cout << sum << endl;
}
提出情報
ジャッジ結果
| セット名 | set01 | set02 | set03 | set04 | set05 | set06 | set07 | set08 | set09 | set10 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | ||||||||||||||||||||
| 結果 |
|
|
|
|
|
|
|
|
|
|
| セット名 | テストケース |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| set06 | data6 |
| set07 | data7 |
| set08 | data8 |
| set09 | data9 |
| set10 | data10 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| data1 | AC | 7 ms | 3496 KiB |
| data10 | AC | 24 ms | 3604 KiB |
| data2 | AC | 3 ms | 3420 KiB |
| data3 | AC | 2 ms | 3412 KiB |
| data4 | AC | 6 ms | 3500 KiB |
| data5 | AC | 4 ms | 3632 KiB |
| data6 | AC | 14 ms | 3496 KiB |
| data7 | AC | 26 ms | 3604 KiB |
| data8 | AC | 26 ms | 3496 KiB |
| data9 | AC | 20 ms | 3560 KiB |