Submission #40162838
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
int s[N], suf[N], ans, n, ss[N];
char str[N];
void check(int up) {
for(int i = 1; i <= n; i++) ss[i] = s[i];
suf[n] = ss[n];
for(int i = n - 1; i; i--) suf[i] = max(suf[i + 1], ss[i]);
int tg = 0, mn = 0, mx = 0;
for(int i = 1; i <= n; i++) {
if (str[i] == '?' && suf[i] + tg + 2 <= up) tg += 2;
ss[i] += tg;
mn = min(mn, ss[i]), mx = max(mx, ss[i]);
}
ans = min(ans, mx - mn);
}
int main() {
scanf("%s", str + 1), n = strlen(str + 1);
int mn = 0, mx = 0;
for(int i = 1; i <= n; i++) {
if (str[i] == '1') s[i] = s[i - 1] + 1; else s[i] = s[i - 1] - 1;
mn = min(mn, s[i]), mx = max(mx, s[i]);
}
ans = mx - mn;
for(int i = 0; i <= 1; i++) check(mx + i);
printf("%d\n", ans);
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - 01 Unbalanced |
| User | Indus |
| Language | C++ (GCC 9.2.1) |
| Score | 800 |
| Code Size | 872 Byte |
| Status | AC |
| Exec Time | 35 ms |
| Memory | 16428 KiB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:22:10: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
22 | scanf("%s", str + 1), n = strlen(str + 1);
| ~~~~~^~~~~~~~~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 800 / 800 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt |
| All | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, 01-41.txt, 01-42.txt, 01-43.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-01.txt | AC | 7 ms | 3636 KiB |
| 00-sample-02.txt | AC | 2 ms | 3652 KiB |
| 00-sample-03.txt | AC | 2 ms | 3488 KiB |
| 01-01.txt | AC | 2 ms | 3560 KiB |
| 01-02.txt | AC | 31 ms | 16356 KiB |
| 01-03.txt | AC | 32 ms | 16428 KiB |
| 01-04.txt | AC | 35 ms | 16292 KiB |
| 01-05.txt | AC | 33 ms | 16412 KiB |
| 01-06.txt | AC | 33 ms | 16288 KiB |
| 01-07.txt | AC | 34 ms | 16368 KiB |
| 01-08.txt | AC | 27 ms | 16292 KiB |
| 01-09.txt | AC | 34 ms | 16424 KiB |
| 01-10.txt | AC | 22 ms | 16372 KiB |
| 01-11.txt | AC | 23 ms | 16412 KiB |
| 01-12.txt | AC | 22 ms | 16428 KiB |
| 01-13.txt | AC | 29 ms | 16316 KiB |
| 01-14.txt | AC | 28 ms | 16168 KiB |
| 01-15.txt | AC | 29 ms | 16360 KiB |
| 01-16.txt | AC | 29 ms | 16372 KiB |
| 01-17.txt | AC | 29 ms | 16288 KiB |
| 01-18.txt | AC | 28 ms | 16372 KiB |
| 01-19.txt | AC | 30 ms | 16284 KiB |
| 01-20.txt | AC | 27 ms | 16264 KiB |
| 01-21.txt | AC | 25 ms | 16380 KiB |
| 01-22.txt | AC | 25 ms | 16428 KiB |
| 01-23.txt | AC | 29 ms | 16356 KiB |
| 01-24.txt | AC | 29 ms | 16380 KiB |
| 01-25.txt | AC | 31 ms | 16164 KiB |
| 01-26.txt | AC | 32 ms | 16264 KiB |
| 01-27.txt | AC | 29 ms | 16356 KiB |
| 01-28.txt | AC | 34 ms | 16284 KiB |
| 01-29.txt | AC | 32 ms | 16288 KiB |
| 01-30.txt | AC | 24 ms | 16288 KiB |
| 01-31.txt | AC | 30 ms | 16368 KiB |
| 01-32.txt | AC | 27 ms | 16364 KiB |
| 01-33.txt | AC | 27 ms | 16408 KiB |
| 01-34.txt | AC | 26 ms | 16376 KiB |
| 01-35.txt | AC | 23 ms | 16412 KiB |
| 01-36.txt | AC | 23 ms | 16332 KiB |
| 01-37.txt | AC | 25 ms | 16380 KiB |
| 01-38.txt | AC | 26 ms | 16316 KiB |
| 01-39.txt | AC | 27 ms | 16380 KiB |
| 01-40.txt | AC | 25 ms | 16288 KiB |
| 01-41.txt | AC | 28 ms | 16240 KiB |
| 01-42.txt | AC | 27 ms | 16288 KiB |
| 01-43.txt | AC | 27 ms | 16276 KiB |