some programs!
This commit is contained in:
1 parent
5d30e847c1
commit
ed054247d5
32 files changed
+1882
-149
No files matched your search
@@ -0,0 +1,55 @@
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
constexpr size_t MAX_N = 100005, MAX_DIGITS = 16;
|
||||
|
||||
int n, m;
|
||||
int bits[MAX_DIGITS];
|
||||
|
||||
void print_bits(ostream& os = clog) {
|
||||
for (const int bit : bits) { os << bit; }
|
||||
os << endl;
|
||||
}
|
||||
|
||||
void update_bits(const int num) {
|
||||
for (int i = 0; i < MAX_DIGITS; i++) {
|
||||
bits[i] += (num >> i) & 1;
|
||||
}
|
||||
}
|
||||
|
||||
void add(int num) {
|
||||
for (int i = 0; i < MAX_DIGITS; i++) {
|
||||
const bool current_bit = num & 1;
|
||||
num >>= 1;
|
||||
if (current_bit == 0) { continue; }
|
||||
num += bits[i];
|
||||
bits[i] = n - bits[i];
|
||||
print_bits();
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
ios::sync_with_stdio(false);
|
||||
cin.tie(nullptr);
|
||||
|
||||
cin >> n >> m;
|
||||
for (int _ = 0; _ < n; _++) {
|
||||
int num;
|
||||
cin >> num;
|
||||
update_bits(num);
|
||||
}
|
||||
for (int _ = 0; _ < m; _++) {
|
||||
print_bits();
|
||||
char op;
|
||||
int x;
|
||||
cin >> op >> x;
|
||||
if (op == 'Q') {
|
||||
cout << bits[x] << endl;
|
||||
} else {
|
||||
add(x);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in new issue
Block a user