226252026-01-15 12:40:26AKrisztianSzínezéscpp17Hibás válasz 29/50414ms2092 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/21ms508 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Hibás válasz0/33ms508 KiB
8Elfogadva3/33ms500 KiB
9Elfogadva2/22ms500 KiB
10Elfogadva2/23ms316 KiB
11Hibás válasz0/3398ms1828 KiB
12Hibás válasz0/3407ms1772 KiB
13Hibás válasz0/3400ms2092 KiB
14Elfogadva3/3407ms1804 KiB
15Elfogadva3/3400ms1732 KiB
16Hibás válasz0/3414ms1732 KiB
17Hibás válasz0/3414ms1848 KiB
18Elfogadva3/3397ms1772 KiB
19Hibás válasz0/3358ms1768 KiB
20Elfogadva3/3361ms1796 KiB