175712025-07-24 09:14:45szjSzínezéscpp17Elfogadva 50/50407ms1888 KiB
#include <bits/stdc++.h>
using namespace std;
int n, sz[2] = {0, 0};
void func(string a)
{
    char curr = a[0];
    for(int i=1; i<n; i++)
        if(curr !=a[i])
        {
            sz[curr-'0']++;
            curr = a[i];
        }
    sz[curr-'0']++;
}
void ki()
{
    if(sz[0] > sz[1])cout << sz[1];
    else cout << sz[0];
    cout << endl;
}
int main()
{
    int m, p;
    bool g;
    cin >> n >> m;
    string a;
    cin >> a;
    func(a);
    char c;
    ki();
    for(int i=0; i<m; i++)
    {
       cin >> p;
       g = !(a[p-1] - '0');
       c = g+'0';
       if(p == 1)
       {
           if(c!= a[p])sz[g]++;
           else sz[!g]--;

       }
       else if(p == n)
       {
           if(c != a[p-2])sz[g]++;
           else sz[!g]--;
       }
       else
       {
           if(c!= a[p] && c!=a[p-2])
           {
               sz[0]++, sz[1]++;
           }
           else if(c == a[p] && c == a[p-2])
           {
               sz[0]--,sz[1]--;
           }
       }
       ki();
       a[p-1] = c;
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/33ms316 KiB
8Elfogadva3/33ms508 KiB
9Elfogadva2/23ms316 KiB
10Elfogadva2/22ms316 KiB
11Elfogadva3/3405ms1888 KiB
12Elfogadva3/3405ms1756 KiB
13Elfogadva3/3393ms1692 KiB
14Elfogadva3/3395ms1792 KiB
15Elfogadva3/3395ms1796 KiB
16Elfogadva3/3407ms1840 KiB
17Elfogadva3/3395ms1792 KiB
18Elfogadva3/3404ms1796 KiB
19Elfogadva3/3405ms1788 KiB
20Elfogadva3/3386ms1792 KiB