135712025-01-08 10:06:09antiSzínezéscpp17Elfogadva 50/50425ms3424 KiB
#include <iostream>
#include <string>
//#include <fstream>

using namespace std;

int main()
{
    //ifstream fin("be2.txt");
    int n, q;
    cin >> n >> q;

    int t[n];
    string kar;
    cin >> kar;
    for(int i=0; i<kar.length(); i++){
        if(kar[i] == '0')
            t[i] = 0;
        else if(kar[i] == '1')
            t[i] = 1;
    }

    int u[q];
    for(int i=0; i<q; i++){
        cin >> u[i];
    }

    int szakadas = 0;
    for(int i=1; i<n; i++){
        if(t[i] != t[i-1])
            szakadas++;
    }
    cout << (szakadas+1)/2 << endl;

    int h=0;
    while(h<q){
        t[u[h]-1] = (t[u[h]-1] + 1) % 2;

        if(u[h]-1 == 0){
            if(t[0] != t[1])
                szakadas++;
            else
                szakadas--;
        }
        else if(u[h]-1 == n-1){
            if(t[n-1] != t[n-2])
                szakadas++;
            else
                szakadas--;
        }
        else{
            if(t[u[h]-1] == t[u[h]-2] && t[u[h]-1] == t[u[h]])
                szakadas -= 2;
            if(t[u[h]-1] != t[u[h]-2] && t[u[h]-1] != t[u[h]])
                szakadas += 2;
        }

        cout << (szakadas+1)/2 << endl;
        h++;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms332 KiB
3Elfogadva2/21ms512 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms320 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/33ms556 KiB
8Elfogadva3/33ms316 KiB
9Elfogadva2/23ms408 KiB
10Elfogadva2/23ms316 KiB
11Elfogadva3/3425ms3348 KiB
12Elfogadva3/3425ms3264 KiB
13Elfogadva3/3407ms3268 KiB
14Elfogadva3/3409ms3268 KiB
15Elfogadva3/3407ms3276 KiB
16Elfogadva3/3409ms3424 KiB
17Elfogadva3/3421ms3332 KiB
18Elfogadva3/3419ms3272 KiB
19Elfogadva3/3416ms3268 KiB
20Elfogadva3/3398ms3336 KiB