141452025-01-10 06:05:34birozsSzínezéspython3Időlimit túllépés 20/50700ms11836 KiB
N,Q = map(int,input().split())
sor = input()
#sor = "001110101001110"
if sor[0] == "0":
    db0 = 1
    db1 = 0
else:
    db1 = 1
    db0 = 0
for i in range(1,N):
    if sor[i] != sor[i-1]:
        if sor[i] == "0":
            db0 += 1
        else:
            db1 += 1
lista = list(sor)
megoldas = [min([db0,db1])]
#print(lista,db0,db1)
for eset in range(Q):
    K = int(input())
    if K > 1 and K < N:
        resz = "".join(lista[K-2:K+1])
        if resz in ["000","111"]:
            db0 +=1
            db1 +=1
        elif resz in ["101","010"]:
            db0 -= 1
            db1 -= 1
    elif K == 1:
        resz = "".join(lista[:2])
        if resz == "00":
            db1 += 1
        elif resz == "11":
            db0 += 1
        elif resz == "10":
            db1 -= 1
        elif resz == "01":
            db0 -= 1
    elif K == N:
        resz = "".join(lista[-2:])
        if resz == "00":
            db1 += 1
        elif resz == "11":
            db0 += 1
        elif resz == "10":
            db0 -= 1
        elif resz == "01":
            db1 -= 1
    if lista[K-1] == "0":
        lista[K-1] = "1"
    else:
        lista[K-1] = "0"
    megoldas.append(min([db0,db1]))
    #print(lista,db0,db1)
for x in megoldas:
    print(x)



RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/50
1Elfogadva0/016ms3124 KiB
2Elfogadva0/021ms3452 KiB
3Elfogadva2/216ms3124 KiB
4Elfogadva2/216ms3320 KiB
5Elfogadva3/317ms3252 KiB
6Elfogadva3/316ms3124 KiB
7Elfogadva3/320ms3124 KiB
8Elfogadva3/318ms3124 KiB
9Elfogadva2/218ms3124 KiB
10Elfogadva2/219ms3312 KiB
11Időlimit túllépés0/3700ms10544 KiB
12Időlimit túllépés0/3699ms11044 KiB
13Időlimit túllépés0/3684ms10872 KiB
14Időlimit túllépés0/3683ms11068 KiB
15Időlimit túllépés0/3677ms11064 KiB
16Időlimit túllépés0/3680ms10812 KiB
17Időlimit túllépés0/3686ms11068 KiB
18Időlimit túllépés0/3677ms11836 KiB
19Időlimit túllépés0/3680ms11580 KiB
20Időlimit túllépés0/3681ms11356 KiB