226232026-01-15 12:38:32AKrisztianSzínezéscpp17Hibás válasz 0/50414ms1860 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);

    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
base0/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/03ms316 KiB
3Hibás válasz0/21ms500 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/33ms316 KiB
8Hibás válasz0/33ms316 KiB
9Hibás válasz0/22ms316 KiB
10Hibás válasz0/23ms316 KiB
11Hibás válasz0/3414ms1852 KiB
12Hibás válasz0/3398ms1808 KiB
13Hibás válasz0/3398ms1840 KiB
14Hibás válasz0/3412ms1732 KiB
15Hibás válasz0/3386ms1732 KiB
16Hibás válasz0/3384ms1776 KiB
17Hibás válasz0/3414ms1860 KiB
18Hibás válasz0/3384ms1772 KiB
19Hibás válasz0/3388ms1732 KiB
20Hibás válasz0/3402ms1804 KiB