66282023-12-13 21:48:06Huni136Színezéscpp17Elfogadva 50/50507ms4156 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ÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms1816 KiB
2Elfogadva0/04ms2080 KiB
3Elfogadva2/23ms2272 KiB
4Elfogadva2/23ms2480 KiB
5Elfogadva3/33ms2692 KiB
6Elfogadva3/33ms2900 KiB
7Elfogadva3/34ms2996 KiB
8Elfogadva3/34ms2996 KiB
9Elfogadva2/24ms2988 KiB
10Elfogadva2/24ms2988 KiB
11Elfogadva3/3460ms3576 KiB
12Elfogadva3/3284ms3644 KiB
13Elfogadva3/3284ms3528 KiB
14Elfogadva3/3507ms3664 KiB
15Elfogadva3/3490ms3888 KiB
16Elfogadva3/3483ms4120 KiB
17Elfogadva3/3421ms4156 KiB
18Elfogadva3/3287ms3920 KiB
19Elfogadva3/3437ms3920 KiB
20Elfogadva3/3277ms3924 KiB