# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1235340 | chaeryeong | Broken Device (JOI17_broken_device) | C++20 | 0 ms | 320 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void Anna (int N, ll X, int K, int P[]) {
const int B = 60;
vector <int> bad(N, 0);
for (int i = 0; i < K; i++) {
bad[P[i]] = 1;
}
vector <int> ret(N, 0);
int b = 0;
for (int i = 0; i < B; i++) {
if (b >= N) {
return;
}
int cnt = 0;
bool flag = 0;
for (int j = b; j < N; j += 2) {
if (!bad[j] && !bad[j + 1]) {
if (cnt) {
ret[j] = ret[j + 1] = 1;
cnt--;
} else {
ret[j] = (X >> i) & 1;
b = j + 2;
flag = 1;
break;
}
} else if (!bad[j] && bad[j + 1]) {
if (cnt) {
ret[j] = ret[j + 1] = 0;
cnt++;
} else {
ret[j] = (X >> i) & 1;
ret[j + 1] = 0;
b = j + 2;
flag = 1; break;
}
} else if (bad[j] && !bad[j + 1]) {
ret[j + 1] = 1;
} else {
cnt++;
}
}
if (!flag) {
return;
}
}
for (auto i : ret) {
cout << i << " ";
}
cout << '\n';
for (int i = 0; i < N; i++) {
Set(i, ret[i]);
}
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll Bruno (int N, int A[]) {
const int B = 60;
vector <int> bits;
for (int i = 0; i < N; i += 2) {
if (A[i] == 0 && A[i + 1] == 0) {
bits.push_back(0);
} else if (A[i] == 1 && A[i + 1] == 0) {
bits.push_back(1);
} else if (A[i] == 0 && A[i + 1] == 1) {
} else {
bits.pop_back();
}
}
ll ret = 0;
for (int i = 0; i < (int)bits.size(); i++) {
if (bits[i]) {
ret += 1ll << i;
}
}
return ret;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |