题解 CF1491A【K-th Largest Value】
题意
给出一个长度为
- 将
a_x 的值0 变1 ,1 变0 。- 询问该序列中第
k 大的数。
- 询问该序列中第
思路
每次修改时更新数组中
Code:
#include <bits/stdc++.h>
using namespace std;
int n, q;
int a[100005];
int main() {
cin >> n >> q;
int one = 0, zero = 0;
for(int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
if (a[i] == 1) one++;
else zero++;
}
while(q--) {
int opt, x;
scanf("%d%d", &opt, &x);
if (opt == 1) {
if (a[x] == 0) {
zero--, one++;
a[x] = 1;
}
else {
one--, zero++;
a[x] = 0;
}
}
else {
if (x <= one) puts("1");
else puts("0");
}
}
return 0;
}