18342022-12-04 17:35:34kdbSzínezéscpp11Hibás válasz 10/50481ms5872 KiB
#include <iostream>
#include <vector>
#include <map>
#include <queue>
using namespace std;
#define ll long long

ostream& operator<<(ostream& os, vector<int>& input)
{
    for (auto i : input)
    {
        os << i << " ";
    }
    return os;
}

int main()
{
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios_base::sync_with_stdio(false);
    int n, q;
    cin >> n >> q;
    vector<int>vec(n+1), d(2);
    string s; cin >> s;
    for (size_t i = 1; i < n+1; i++)
    {
        vec[i] = s[i - 1] - '0';
        if (vec[i] == 1 && vec[i - 1] == 0) d[1]++;
        else if (vec[i] == 0 && vec[i - 1] == 1) d[0]++;
    }
    if (vec[1] == 0) d[0]++;


    cout << min(d[0], d[1]) << endl;


    while (q--) 
    {
        int a;
        cin >> a;
        if (a == 1 && vec[1] != vec[2])
        {
            d[vec[a]]--;
        }
        else if (a == 1 && vec[1] == vec[2])
        {
            d[1-vec[a]]++;
        }
        else if (a == n && vec[n] != vec[n-1])
        {
            d[vec[a]]++;
        }
        else if (a == n && vec[n] == vec[n-1])
        {
            d[1-vec[a]]--;
        }
        else if (vec[a - 1] == vec[a] && vec[a] == vec[a + 1])
        {
            d[0]++;
            d[1]++;
        }
        else if (vec[a - 1] == vec[a + 1] && vec[a] != vec[a + 1])
        {
            d[0]--;
            d[1]--;
        }
        vec[a] = 1 - vec[a];
        cout << min(d[0], d[1]) << endl;
    }
    return 0;
}
/*
5 3
01001
2
1
5

*/
RészfeladatÖsszpontTesztVerdiktIdőMemória
base10/50
1Elfogadva0/03ms1828 KiB
2Elfogadva0/04ms2140 KiB
3Elfogadva2/22ms2144 KiB
4Hibás válasz0/22ms2228 KiB
5Hibás válasz0/32ms2228 KiB
6Hibás válasz0/32ms2356 KiB
7Elfogadva3/33ms2564 KiB
8Hibás válasz0/34ms2632 KiB
9Elfogadva2/23ms2704 KiB
10Hibás válasz0/23ms2708 KiB
11Hibás válasz0/3405ms5220 KiB
12Hibás válasz0/3481ms5160 KiB
13Hibás válasz0/3236ms5296 KiB
14Elfogadva3/3236ms5364 KiB
15Hibás válasz0/3233ms5372 KiB
16Hibás válasz0/3280ms5364 KiB
17Hibás válasz0/3342ms5632 KiB
18Hibás válasz0/3477ms5828 KiB
19Hibás válasz0/3234ms5872 KiB
20Hibás válasz0/3451ms5848 KiB