7571 | 2024. 01. 09 18:42:03 | Ablablabla | Takaros Sorozat (80 pont) | cpp17 | Hibás válasz 50/80 | 9ms | 6296 KiB |
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
string s;
cin >> s;
vector<int> pref(n + 1, 0);
for(int i = 1; i <= n; i++){
pref[i] = pref[i - 1] + (s[i - 1] == '0' ? 0 : 1);
}
vector<int> suf(n + 1, 0);
for(int i = n - 1; i >= 0; i--){
suf[i] = suf[i + 1] + (s[i] == '1' ? 0 : 1);
}
int mini = 2e9 + 7;
for(int i = 0; i < n; i++){
mini = min(mini, pref[i] + suf[i + 1]);
}
cout << mini << "\n";
pref.assign(n + 1, 0);
int nullas = 0;
int egyes = 0;
for(int i = 1; i <= n; i++){
if(s[i - 1] == '0'){
nullas++;
} else{
egyes++;
}
if(i >= 5){
if(s[i - 5] == '0'){
nullas--;
} else{
egyes--;
}
}
int a = pref[i - 1] + (s[i - 1] == '0' ? 0 : 1);
int b = 2e9 + 7;
if(nullas == 2 && egyes == 2){
b = pref[i - 3] + 1;
}
pref[i] = min(a, b);
}
suf.assign(n + 1, 0);
nullas = 0;
egyes = 0;
for(int i = n - 1; i >= 0; i--){
if(s[i] == '0'){
nullas++;
} else{
egyes++;
}
if(i + 4 < n){
if(s[i + 4] == '0'){
nullas--;
} else{
egyes--;
}
}
int a = suf[i + 1] + (s[i] == '1' ? 0 : 1);
int b = 2e9 + 7;
if(nullas == 2 && egyes == 2){
b = suf[i + 3] + 1;
}
suf[i] = min(a, b);
}
mini = 2e9 + 7;
for(int i = 0; i < n; i++){
mini = min(mini, pref[i] + suf[i + 1]);
}
cout << mini << "\n";
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/80 | ||||||
1 | Elfogadva | 0/0 | 3ms | 2084 KiB | |||
2 | Hibás válasz | 0/0 | 9ms | 4012 KiB | |||
3 | Elfogadva | 4/4 | 3ms | 2372 KiB | |||
4 | Elfogadva | 4/4 | 3ms | 2424 KiB | |||
5 | Részben helyes | 2/4 | 3ms | 2424 KiB | |||
6 | Részben helyes | 2/4 | 3ms | 2680 KiB | |||
7 | Részben helyes | 2/4 | 3ms | 2800 KiB | |||
8 | Elfogadva | 4/4 | 3ms | 2976 KiB | |||
9 | Részben helyes | 2/4 | 3ms | 3024 KiB | |||
10 | Részben helyes | 2/4 | 3ms | 3148 KiB | |||
11 | Részben helyes | 2/4 | 3ms | 3400 KiB | |||
12 | Részben helyes | 2/4 | 3ms | 3644 KiB | |||
13 | Elfogadva | 4/4 | 7ms | 5472 KiB | |||
14 | Részben helyes | 2/4 | 7ms | 5364 KiB | |||
15 | Elfogadva | 4/4 | 7ms | 5560 KiB | |||
16 | Részben helyes | 2/4 | 8ms | 5684 KiB | |||
17 | Részben helyes | 2/4 | 7ms | 5896 KiB | |||
18 | Részben helyes | 2/4 | 8ms | 6044 KiB | |||
19 | Részben helyes | 2/4 | 7ms | 6252 KiB | |||
20 | Részben helyes | 2/4 | 8ms | 6292 KiB | |||
21 | Részben helyes | 2/4 | 8ms | 6296 KiB | |||
22 | Részben helyes | 2/4 | 9ms | 6212 KiB |