7626 | 2024. 01. 10 09:27:55 | Ablablabla | Takaros Sorozat (80 pont) | cpp17 | Hibás válasz 64/80 | 12ms | 9892 KiB |
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
string s;
cin >> s;
vector<int> szamok(n + 1, 0);
for(int i = 1; i <= n; i++){
szamok[i] = s[i - 1] - '0';
}
vector<int> pref1(n + 1, 0);
vector<int> suf1(n + 1, 0);
for(int i = 1; i <= n; i++){
pref1[i] = pref1[i - 1] + szamok[i];
}
for(int i = n - 1; i >= 0; i--){
suf1[i] = suf1[i + 1] + (szamok[i + 1] == 0);
}
int mini = 2e9 + 7;
for(int i = 0; i < n; i++){
mini = min(mini, pref1[i] + suf1[i]);
}
cout << mini << "\n";
vector<int> elotte(n + 1, 0);
vector<int> utana(n + 2, 0);
for(int i = 1; i <= n; i++){
if(szamok[i]){
elotte[i] = i;
} else{
elotte[i] = elotte[i - 1];
}
}
for(int i = n; i >= 1; i--){
if(!szamok[i]){
utana[i] = i;
} else{
utana[i] = utana[i + 1];
}
}
vector<int> dpe(n + 2, 0);
vector<int> dpu(n + 2, 0);
for(int i = 1; i <= n; i++){
dpe[i] = dpe[i - 1];
if(szamok[i] && elotte[i - 1]){
if(abs(elotte[i - 1] - i) <= 3){
dpe[i] = dpe[elotte[i - 1] - 1] + 1;
} else{
dpe[i] = dpe[elotte[i - 1]] + 1;
}
} else if(szamok[i]){
dpe[i] = 1;
}
}
for(int i = n; i >= 1; i--){
dpu[i] = dpu[i + 1];
if(!szamok[i] && utana[i + 1]){
if(abs(utana[i + 1] - i) <= 3){
dpu[i] = dpu[utana[i + 1] + 1] + 1;
} else{
dpu[i] = dpu[utana[i + 1]] + 1;
}
} else if(!szamok[i]){
dpu[i] = 1;
}
}
for(int i = 0; i < n; i++){
mini = min(mini, dpe[i] + dpu[i + 1]);
}
cout << mini << "\n";
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 64/80 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1944 KiB | |||
2 | Elfogadva | 0/0 | 12ms | 7900 KiB | |||
3 | Hibás válasz | 0/4 | 3ms | 2476 KiB | |||
4 | Elfogadva | 4/4 | 3ms | 2564 KiB | |||
5 | Részben helyes | 2/4 | 3ms | 2776 KiB | |||
6 | Elfogadva | 4/4 | 3ms | 2896 KiB | |||
7 | Elfogadva | 4/4 | 3ms | 3148 KiB | |||
8 | Elfogadva | 4/4 | 3ms | 3136 KiB | |||
9 | Elfogadva | 4/4 | 3ms | 3248 KiB | |||
10 | Hibás válasz | 0/4 | 2ms | 3332 KiB | |||
11 | Elfogadva | 4/4 | 3ms | 3460 KiB | |||
12 | Részben helyes | 2/4 | 2ms | 3548 KiB | |||
13 | Elfogadva | 4/4 | 8ms | 9180 KiB | |||
14 | Elfogadva | 4/4 | 8ms | 9140 KiB | |||
15 | Elfogadva | 4/4 | 8ms | 9780 KiB | |||
16 | Elfogadva | 4/4 | 8ms | 9684 KiB | |||
17 | Elfogadva | 4/4 | 8ms | 9616 KiB | |||
18 | Hibás válasz | 0/4 | 8ms | 9744 KiB | |||
19 | Elfogadva | 4/4 | 8ms | 9616 KiB | |||
20 | Elfogadva | 4/4 | 9ms | 9892 KiB | |||
21 | Elfogadva | 4/4 | 9ms | 9728 KiB | |||
22 | Elfogadva | 4/4 | 10ms | 9852 KiB |