138232025-01-08 20:24:30horkaSzínezéscpp17Elfogadva 50/5054ms2736 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n,q; cin>>n>>q;
    string s; cin>>s;
    s="2"+s+"2";
    int a=0,b=0;
    vector<int> tip(n+1);
    for(int i=1; i<=n; i++)
    {
        if(s[i]=='0' && s[i+1]=='1') tip[i]=1,a++;
        if(s[i]=='1' && s[i+1]=='0') tip[i]=2,b++;
    }
    cout<<max(a,b)<<"\n";
    while(q--)
    {
        int i; cin>>i;
        if(tip[i-1]==1) a--;
        if(tip[i-1]==2) b--;
        if(tip[i]==1) a--;
        if(tip[i]==2) b--;
        tip[i-1]=tip[i]=0;
        s[i]=(s[i]=='1'?'0':'1');
        for(int j=i-1; j<=i; j++)
        {
            if(s[j]=='0' && s[j+1]=='1') tip[j]=1;
            if(s[j]=='1' && s[j+1]=='0') tip[j]=2;
            //cout<<s[j]<<" "<<s[j+1]<<endl;
            if(tip[j]==1) a++;
            if(tip[j]==2) b++;
        }
        //cout<<a<<" "<<b<<" "<<s<<endl;
        cout<<max(a,b)<<"\n";
    }

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms556 KiB
9Elfogadva2/21ms432 KiB
10Elfogadva2/21ms328 KiB
11Elfogadva3/354ms2636 KiB
12Elfogadva3/352ms2736 KiB
13Elfogadva3/352ms2568 KiB
14Elfogadva3/352ms2632 KiB
15Elfogadva3/352ms2612 KiB
16Elfogadva3/352ms2576 KiB
17Elfogadva3/354ms2616 KiB
18Elfogadva3/350ms2652 KiB
19Elfogadva3/352ms2652 KiB
20Elfogadva3/352ms2612 KiB