231412026-01-16 13:21:04PKBTakaros Sorozat (80 pont)cpp17Hibás válasz 70/807ms1816 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    int N;
    string B;
    cin >> N >> B;

    vector<int> pref1(N+1, 0);
    for (int i = 1; i <= N; i++)
        pref1[i] = pref1[i-1] + (B[i-1] == '1');

    int total1 = pref1[N];
    int total0 = N - total1;


    int best = N;
    for (int k = 0; k <= N; k++) {
        int ones_left = pref1[k];
        int zeros_right = (N - k) - (total1 - pref1[k]);
        best = min(best, ones_left + zeros_right);
    }

    cout << best << "\n";













    int minErrors = best;
    int bestK = 0;
    for (int k = 0; k <= N; k++) {
        int ones_left = pref1[k];
        int zeros_right = (N - k) - (total1 - pref1[k]);
        if (ones_left + zeros_right == best) {
            bestK = k;
            break;
        }
    }

    vector<int> err(N, 0);
    for (int i = 0; i < N; i++) {
        if (i < bestK && B[i] == '1') err[i] = 1;
        if (i >= bestK && B[i] == '0') err[i] = 1;
    }

    int used = 0;
    vector<int> taken(N, 0);

    for (int i = 0; i + 3 < N; i++) {
        int cnt = 0;
        for (int j = 0; j < 4; j++)
            if (err[i+j] && !taken[i+j]){
                cnt++;
            }

        if (cnt == 2) {
            for (int j = 0; j < 4; j++)
                if (err[i+j]) {
                    taken[i+j] = 1;
                }
            used++;
        }
    }

    int answer2 = minErrors - used;
    cout << answer2;

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base70/80
1Elfogadva0/01ms492 KiB
2Hibás válasz0/06ms1592 KiB
3Elfogadva4/41ms508 KiB
4Elfogadva4/41ms316 KiB
5Részben helyes2/41ms316 KiB
6Elfogadva4/41ms316 KiB
7Részben helyes2/41ms316 KiB
8Elfogadva4/41ms316 KiB
9Elfogadva4/41ms500 KiB
10Elfogadva4/41ms352 KiB
11Elfogadva4/41ms512 KiB
12Részben helyes2/41ms508 KiB
13Elfogadva4/44ms1588 KiB
14Elfogadva4/44ms1632 KiB
15Elfogadva4/44ms1588 KiB
16Elfogadva4/44ms1588 KiB
17Elfogadva4/46ms1588 KiB
18Részben helyes2/46ms1816 KiB
19Elfogadva4/44ms1588 KiB
20Elfogadva4/47ms1680 KiB
21Elfogadva4/46ms1588 KiB
22Részben helyes2/46ms1684 KiB