6628 2023. 12. 13 21:48:06 Huni136 Színezés cpp17 Elfogadva 50/50 507ms 4156 KiB
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("be.txt");
ofstream fout("ki.txt");

int csere(char x)
{
    return (x=='1'?'0':'1');
}


int main()
{
    int n,qdb;
    cin>>n>>qdb;
    int reszdb[2]={0};
    string a;
    cin>>a;
    for(int i=1;i<n;i++)
    {
        if(a[i]!=a[i-1])
        {
            reszdb[a[i-1]-'0']++;
        }
    }
    reszdb[a[n-1]-'0']++;
    cout<<min(reszdb[0],reszdb[1])<<endl;
    // fout<<reszdb[0]<<" "<<reszdb[1]<<endl;
    int x;
    for(int i=1;i<=qdb;i++)
    {
        cin>>x;
        x--;
        if(n==1)
        {
            cout<<0;
        }
        else if(x==0)
        {
            
            if(a[x]==a[x+1])
            {
                a[x]=csere(a[x]);
                reszdb[a[x]-'0']++;
            }
            else
            {
                reszdb[a[x]-'0']--;
                a[x]=csere(a[x]);
            }
        }
        else if(x==n-1)
        {
            //cout<<"alma";
            if(a[x]==a[x-1])
            {
                a[x]=csere(a[x]);
                reszdb[a[x]-'0']++;
            }
            else
            {
                reszdb[a[x]-'0']--;
                a[x]=csere(a[x]);
            }
        }
        else
        {
            if(a[x-1]==a[x+1])
            {
                //cout<<"alma";
                if(a[x]==a[x-1])
                {
                    //cout<<"alma";
                    reszdb[a[x]-'0']++;
                    a[x]=csere(a[x]);
                    reszdb[a[x]-'0']++;
                }
                else
                {
                    reszdb[a[x]-'0']--;
                    a[x]=csere(a[x]);
                    reszdb[a[x]-'0']--;
                    //cout<<reszdb[0]<<" "<<reszdb[1]<<endl;
                }
            }
            else
            {
                a[x]=csere(a[x]);
            }
        }
        // fout<<reszdb[0]<<" "<<reszdb[1]<<endl;
        //cout<<a[x]<<endl;
        cout<<min(reszdb[0],reszdb[1])<<endl;
        //cout<<a<<endl;
    }

    
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1816 KiB
2 Elfogadva 0/0 4ms 2080 KiB
3 Elfogadva 2/2 3ms 2272 KiB
4 Elfogadva 2/2 3ms 2480 KiB
5 Elfogadva 3/3 3ms 2692 KiB
6 Elfogadva 3/3 3ms 2900 KiB
7 Elfogadva 3/3 4ms 2996 KiB
8 Elfogadva 3/3 4ms 2996 KiB
9 Elfogadva 2/2 4ms 2988 KiB
10 Elfogadva 2/2 4ms 2988 KiB
11 Elfogadva 3/3 460ms 3576 KiB
12 Elfogadva 3/3 284ms 3644 KiB
13 Elfogadva 3/3 284ms 3528 KiB
14 Elfogadva 3/3 507ms 3664 KiB
15 Elfogadva 3/3 490ms 3888 KiB
16 Elfogadva 3/3 483ms 4120 KiB
17 Elfogadva 3/3 421ms 4156 KiB
18 Elfogadva 3/3 287ms 3920 KiB
19 Elfogadva 3/3 437ms 3920 KiB
20 Elfogadva 3/3 277ms 3924 KiB