226292026-01-15 12:46:54AKrisztianSzínezéscpp17Hibás válasz 29/50416ms1876 KiB
#include <iostream>
#include <string>

using namespace std;

int main()
{
    int N, Q;
    cin >> N >> Q;
    string sor;
    cin >> sor;
    int K, p=0, k=0;
    bool pp=0, kk=0;

    for (int j=0; j<N; j++)
    {
        if (sor[j]=='1' and kk==0)
        {
            kk=1;
            pp=0;
            k=k+1;
        }
        if (sor[j]=='0' and pp==0)
        {
            kk=0;
            pp=1;
            p=p+1;
        }
    }
    cout << min(k, p) << endl;

    for (int i=0; i<Q; i++)
    {
        cin >> K;
        if (K<N and K>1)
        {
            if (sor[K-1]==sor[K-2] and sor[K-1]==sor[K])
            {
                p=p+1;
                k=k+1;
            }
            if ((sor[K-1]!=sor[K-2]) and (sor[K-1]!=sor[K]))
            {
                p=p-1;
                k=k-1;
            }
        }
        else if (K==N)
        {
            if (sor[K-1]==sor[K-2])
            {
                if (sor[K-1]=='1')
                {
                    p=p+1;
                }
                else
                {
                    k=k+1;
                }
            }
            if (sor[K-1]!=sor[K-2])
            {
                if (sor[K-1]=='1')
                {
                    k=k-1;
                }
                else
                {
                    p=p-1;
                }
            }
        }
        else if (K==1)
        {
            if (sor[K-1]==sor[K])
            {
                if (sor[K-1]=='1')
                {
                    p=p+1;
                }
                else
                {
                    k=k+1;
                }
            }
            if (sor[K-1]!=sor[K])
            {
                if (sor[K]=='1')
                {
                    k=k-1;
                }
                else
                {
                    p=p-1;
                }
            }
        }
        if (sor[K-1]=='1')
        {
            sor[K-1]='0';
        }
        else
        {
            sor[K-1]='1';
        }
        cout << min(k, p) << endl;
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base29/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms508 KiB
6Elfogadva3/31ms316 KiB
7Hibás válasz0/33ms508 KiB
8Elfogadva3/34ms324 KiB
9Elfogadva2/22ms316 KiB
10Elfogadva2/23ms500 KiB
11Hibás válasz0/3402ms1728 KiB
12Hibás válasz0/3416ms1780 KiB
13Hibás válasz0/3414ms1768 KiB
14Elfogadva3/3402ms1824 KiB
15Elfogadva3/3400ms1796 KiB
16Hibás válasz0/3402ms1876 KiB
17Hibás válasz0/3414ms1768 KiB
18Elfogadva3/3411ms1780 KiB
19Hibás válasz0/3363ms1728 KiB
20Elfogadva3/3361ms1764 KiB