提出 #66357882
ソースコード 拡げる
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <bitset>
#include <vector>
using namespace std;
typedef pair<int, int> pii;
const int MAXN = 2e5 + 5;
int main() {
cin.tie(0) -> sync_with_stdio(0);
int T;
cin >> T;
while (T --) {
string s;
vector<pii> b;
vector<int> pre;
int n, st, end, tot1 = 0, cur, ans, minv = 1e9, v;
cin >> n >> s;
for (int i = 0; i < n; ) {
if (s[i] == '1') {
st = i + 1;
while (i < n && s[i] == '1') {
i ++;
}
end = i;
b.push_back({st, end});
} else {
i ++;
}
}
for (auto i : b) {
tot1 += i.second - i.first + 1;
}
ans = min(tot1, n - tot1);
if (!b.size()) {
cout << ans << '\n';
continue;
}
pre.resize(b.size() + 1);
for (int i = 1; i <= b.size(); i ++) {
pre[i] = pre[i - 1] + b[i - 1].second - b[i - 1].first + 1;
}
for (int i = 0; i < b.size(); i ++) {
end = b[i].second;
cur = end + tot1 - (pre[i + 1] << 1);
ans = min(cur, ans);
}
for (int i = 0; i < b.size(); i ++) {
st = b[i].first;
cur = n - st + 1 + (pre[i] << 1) - tot1;
ans = min(cur, ans);
}
for (int i = 0; i < b.size(); i ++) {
auto [st, end] = b[i];
v = -st + (pre[i] << 1);
minv = min(v, minv);
cur = end - (pre[i + 1] << 1) + minv + tot1 + 1;
ans = min(cur, ans);
}
cout << ans << '\n';
}
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Flip to Gather |
| ユーザ | FlowerAccepted |
| 言語 | C++ 17 (gcc 12.2) |
| 得点 | 400 |
| コード長 | 1833 Byte |
| 結果 | AC |
| 実行時間 | 6 ms |
| メモリ | 4648 KiB |
コンパイルエラー
Main.cpp: In function ‘int main()’:
Main.cpp:43:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
43 | for (int i = 1; i <= b.size(); i ++) {
| ~~^~~~~~~~~~~
Main.cpp:46:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
46 | for (int i = 0; i < b.size(); i ++) {
| ~~^~~~~~~~~~
Main.cpp:51:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
51 | for (int i = 0; i < b.size(); i ++) {
| ~~^~~~~~~~~~
Main.cpp:56:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
56 | for (int i = 0; i < b.size(); i ++) {
| ~~^~~~~~~~~~
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3532 KiB |
| 00_sample_01.txt | AC | 1 ms | 3456 KiB |
| 01_test_00.txt | AC | 6 ms | 3484 KiB |
| 01_test_01.txt | AC | 5 ms | 3664 KiB |
| 01_test_02.txt | AC | 5 ms | 3536 KiB |
| 01_test_03.txt | AC | 5 ms | 3660 KiB |
| 01_test_04.txt | AC | 5 ms | 3484 KiB |
| 01_test_05.txt | AC | 6 ms | 3464 KiB |
| 01_test_06.txt | AC | 5 ms | 3532 KiB |
| 01_test_07.txt | AC | 5 ms | 3440 KiB |
| 01_test_08.txt | AC | 5 ms | 3404 KiB |
| 01_test_09.txt | AC | 4 ms | 3532 KiB |
| 01_test_10.txt | AC | 3 ms | 3544 KiB |
| 01_test_11.txt | AC | 3 ms | 3460 KiB |
| 01_test_12.txt | AC | 3 ms | 3540 KiB |
| 01_test_13.txt | AC | 2 ms | 3652 KiB |
| 01_test_14.txt | AC | 2 ms | 3668 KiB |
| 01_test_15.txt | AC | 2 ms | 3464 KiB |
| 01_test_16.txt | AC | 2 ms | 3484 KiB |
| 01_test_17.txt | AC | 2 ms | 3540 KiB |
| 01_test_18.txt | AC | 2 ms | 3620 KiB |
| 01_test_19.txt | AC | 3 ms | 3904 KiB |
| 01_test_20.txt | AC | 3 ms | 3812 KiB |
| 01_test_21.txt | AC | 3 ms | 3868 KiB |
| 01_test_22.txt | AC | 3 ms | 4040 KiB |
| 01_test_23.txt | AC | 2 ms | 3660 KiB |
| 01_test_24.txt | AC | 2 ms | 3796 KiB |
| 01_test_25.txt | AC | 1 ms | 3652 KiB |
| 01_test_26.txt | AC | 2 ms | 3640 KiB |
| 01_test_27.txt | AC | 3 ms | 4648 KiB |