141462025-01-10 06:06:49birozsSzínezéspypy3Accepted 50/50423ms49260 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)



SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/039ms19836 KiB
2Accepted0/081ms22148 KiB
3Accepted2/243ms19660 KiB
4Accepted2/239ms19696 KiB
5Accepted3/339ms19688 KiB
6Accepted3/337ms19692 KiB
7Accepted3/378ms21736 KiB
8Accepted3/370ms21736 KiB
9Accepted2/268ms21736 KiB
10Accepted2/275ms21596 KiB
11Accepted3/3418ms49128 KiB
12Accepted3/3423ms49036 KiB
13Accepted3/3344ms48620 KiB
14Accepted3/3372ms49184 KiB
15Accepted3/3423ms48628 KiB
16Accepted3/3372ms48872 KiB
17Accepted3/3345ms49260 KiB
18Accepted3/3330ms48936 KiB
19Accepted3/3335ms47600 KiB
20Accepted3/3349ms47692 KiB