6985 | 2023. 12. 23 20:12:43 | MagyarKendeSZLG | Színezés | cpp17 | Elfogadva 50/50 | 57ms | 4416 KiB |
#include <iostream>
#include <vector>
using namespace std;
#define speed cin.tie(0); ios::sync_with_stdio(0)
int main() {
speed;
int N, Q;
cin >> N >> Q;
vector<bool> balls(N);
for (int i = 0; i < N; i++) {
char c;
cin >> c;
balls[i] = c == '1';
}
int z_sum = 0, o_sum = 0, i = 0;
while (i < N) {
if (balls[i]) o_sum++;
else z_sum++;
do {
i++;
} while (i < N && balls[i - 1] == balls[i]);
}
cout << min(z_sum, o_sum) << '\n';
while (Q--) {
if (N == 1) {
cout << "0\n";
continue;
}
int p;
cin >> p;
p--;
if (!p) {
if (balls[p + 1]) {
z_sum += (balls[p] ? 1 : -1);
} else {
o_sum += (balls[p] ? -1 : 1);
}
}
else if (p == N - 1) {
if (balls[p - 1]) {
z_sum += (balls[p] ? 1 : -1);
} else {
o_sum += (balls[p] ? -1 : 1);
}
}
else if (balls[p - 1] == balls[p + 1]) {
if (balls[p - 1] == balls[p]) {
z_sum++;
o_sum++;
} else {
z_sum--;
o_sum--;
}
}
balls[p] = !balls[p];
cout << min(z_sum, o_sum) << '\n';
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1832 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2032 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 2384 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2500 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2812 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2880 KiB | |||
7 | Elfogadva | 3/3 | 3ms | 3140 KiB | |||
8 | Elfogadva | 3/3 | 3ms | 3100 KiB | |||
9 | Elfogadva | 2/2 | 3ms | 3260 KiB | |||
10 | Elfogadva | 2/2 | 3ms | 3260 KiB | |||
11 | Elfogadva | 3/3 | 57ms | 3496 KiB | |||
12 | Elfogadva | 3/3 | 57ms | 3620 KiB | |||
13 | Elfogadva | 3/3 | 54ms | 3836 KiB | |||
14 | Elfogadva | 3/3 | 56ms | 3832 KiB | |||
15 | Elfogadva | 3/3 | 54ms | 3840 KiB | |||
16 | Elfogadva | 3/3 | 57ms | 3920 KiB | |||
17 | Elfogadva | 3/3 | 57ms | 4128 KiB | |||
18 | Elfogadva | 3/3 | 52ms | 4328 KiB | |||
19 | Elfogadva | 3/3 | 52ms | 4240 KiB | |||
20 | Elfogadva | 3/3 | 54ms | 4416 KiB |