1880 2022. 12. 06 22:05:13 TomaSajt Színezés cpp17 Elfogadva 50/50 48ms 5444 KiB
#include <bits/stdc++.h>
#define speed ios::sync_with_stdio(0);cin.tie(0)
using namespace std;

int main() {
    speed;
    int n, q;
    cin >> n >> q;
    vector<int> v(n);
    for (int i = 0; i < n; i++) {
        char c; cin >> c;
        v[i] = c == '1' ? 1 : 0;
    }
    int cnts[2] = { 0,0 };
    cnts[v[0]]++;
    for (int i = 1; i < n; i++) {
        if (v[i - 1] != v[i]) cnts[v[i]]++;
    }
    cout << (cnts[0] + cnts[1]) / 2 << '\n';
    while (q--) {
        int k; cin >> k; k--;
        if (k == 0) {
            if (v[0] == v[1]) cnts[1 - v[0]]++;
            else cnts[v[0]]--;
        }
        else if (k == n - 1) {
            if (v[n - 1] == v[n - 2]) cnts[1 - v[n - 1]]++;
            else cnts[v[n - 1]]--;
        }
        else if (v[k - 1] == v[k + 1]) {
            if (v[k] == v[k - 1]) cnts[0]++, cnts[1]++;
            else cnts[0]--, cnts[1]--;
        }
        v[k] = 1 - v[k];
        cout << (cnts[0] + cnts[1]) / 2 << '\n';
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1828 KiB
2 Elfogadva 0/0 3ms 2232 KiB
3 Elfogadva 2/2 2ms 2256 KiB
4 Elfogadva 2/2 2ms 2428 KiB
5 Elfogadva 3/3 2ms 2652 KiB
6 Elfogadva 3/3 2ms 2884 KiB
7 Elfogadva 3/3 2ms 3000 KiB
8 Elfogadva 3/3 2ms 2976 KiB
9 Elfogadva 2/2 2ms 3168 KiB
10 Elfogadva 2/2 2ms 3280 KiB
11 Elfogadva 3/3 48ms 4752 KiB
12 Elfogadva 3/3 48ms 4956 KiB
13 Elfogadva 3/3 48ms 4956 KiB
14 Elfogadva 3/3 48ms 4956 KiB
15 Elfogadva 3/3 48ms 5136 KiB
16 Elfogadva 3/3 48ms 5140 KiB
17 Elfogadva 3/3 48ms 5140 KiB
18 Elfogadva 3/3 46ms 5232 KiB
19 Elfogadva 3/3 48ms 5360 KiB
20 Elfogadva 3/3 46ms 5444 KiB