QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#618695 | #9229. Juliet Unifies Ones | kkzyr | WA | 0ms | 3788kb | C++17 | 870b | 2024-10-07 07:16:29 | 2024-10-07 07:16:29 |
Judging History
answer
#include <iostream>
#include <string>
using namespace std;
int n;
string s;
int prefix_sum[51][2];
int values[51][2];
int main(){
cin >> s;
n = (int)s.size();
s = 'a' + s;
int num_1 = 0;
for (int i = 1;i <= n;i++){
if (s[i] == '1'){
num_1++;
}
prefix_sum[i][0] = prefix_sum[i - 1][0];
prefix_sum[i][1] = prefix_sum[i - 1][1];
prefix_sum[i][s[i] - '0']++;
}
int ans = num_1;
for (int i = 1;i <= n;i++){
values[i][0] = prefix_sum[i - 1][1] - prefix_sum[i - 1][0];
values[i][1] = prefix_sum[n][1] - prefix_sum[i][1] + prefix_sum[i][0];
}
int min_val = 1e9;
for (int i = n;i >= 1;i--){
ans = min(ans, values[i][0] + min_val);
min_val = min(min_val, values[i][1]);
}
cout << ans << '\n';
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3592kb
input:
00011011001
output:
2
result:
ok 1 number(s): "2"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
11101111111111111101001011110111111110011101010110
output:
11
result:
ok 1 number(s): "11"
Test #3:
score: -100
Wrong Answer
time: 0ms
memory: 3588kb
input:
00000000100000000000100000010001000
output:
4
result:
wrong answer 1st numbers differ - expected: '3', found: '4'