175272025-07-18 10:46:34KristófSzínezéscpp17Elfogadva 50/50356ms3608 KiB
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n,q;
    cin>>n>>q;
    //char tmp;
    string input;
    cin>>input;
    vector<char> s(n+1);
    int z=0,o=0;
    //scanf("%c",&tmp);
    s[1]=input[0];

    if(s[1]=='1')
        {
        o++;
        }
        else
            z++;

    for(int i=2;i<=n;i++)
        {

        s[i]=input[i-1];
        if(s[i]!=s[i-1])
            {
            if(s[i]=='1')
                {
                o++;
                }
            else
                z++;
            }
        }
        int tmp;
        for(int i=1;i<=q;i++)
            {
            cout<<min(o,z)<<endl;
            cin>>tmp;

            if(tmp!=1 && tmp!=n)
                {
                if(s[tmp-1]!=s[tmp] &&  s[tmp]!=s[tmp+1])
                    {
                    o--;
                    z--;
                    }
                else if(s[tmp-1]==s[tmp] && s[tmp]==s[tmp+1])
                    {
                    o++;
                    z++;
                    }
                }
            else
                {
                if(tmp==n)
                    {
                    if(s[tmp]=='1')
                        {
                        if(s[tmp]!=s[tmp-1])
                            {
                            o--;
                            }
                        else
                            {
                            z++;
                            }
                        }
                    else
                        {
                        if(s[tmp]!=s[tmp-1])
                            {
                            z--;
                            }
                        else
                            {
                            o++;
                            }
                        }
                    }
                if(tmp==1)
                    {
                    //cout<<s[tmp]<<s[tmp+1]<<" bug"<<endl;
                    if(s[tmp]=='1')
                        {
                        if(s[tmp]!=s[tmp+1])
                            {

                            o--;
                            }
                        else
                            {

                            z++;
                            }
                        }
                    else
                        {
                        if(s[tmp]!=s[tmp+1])
                            {

                            z--;
                            }
                        else
                            {

                            o++;
                            }
                        }
                    }
                }
            if(s[tmp]=='1')
                {
                s[tmp]='0';
                }
            else
                s[tmp]='1';
            }
        cout<<min(o,z)<<endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms508 KiB
6Elfogadva3/31ms508 KiB
7Elfogadva3/33ms316 KiB
8Elfogadva3/33ms316 KiB
9Elfogadva2/23ms316 KiB
10Elfogadva2/23ms316 KiB
11Elfogadva3/3344ms3372 KiB
12Elfogadva3/3356ms3540 KiB
13Elfogadva3/3342ms3552 KiB
14Elfogadva3/3352ms3524 KiB
15Elfogadva3/3344ms3392 KiB
16Elfogadva3/3354ms3556 KiB
17Elfogadva3/3345ms3520 KiB
18Elfogadva3/3351ms3400 KiB
19Elfogadva3/3335ms3608 KiB
20Elfogadva3/3354ms3520 KiB