# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1239924 | SpyrosAliv | Broken Device (JOI17_broken_device) | C++20 | 0 ms | 320 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int BITS = 61;
void Anna(int N, long long X, int K, int P[]){
int n = N;
ll x = X;
int k = K;
vector<bool> ok(n, true);
for (int i = 0; i < k; i++) {
ok[P[i]] = false;
Set(P[i], 0);
}
int curr = 0;
for (int i = 0; i < BITS; i++) {
int send = ((x >> i) & 1);
if (send == 1) {
while (!ok[curr]) curr++;
Set(curr, 1);
if (curr < n-1) {
if (ok[curr+1]) Set(curr+1, 0);
curr+=2;
}
continue;
}
else {
while (!ok[curr] || !ok[curr+1]) curr++;
Set(curr, 1);
Set(curr+1, 1);
curr += 2;
}
}
while (curr < n) {
Set(curr, 0);
curr++;
}
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int BITS = 61;
long long Bruno(int N, int A[]){
ll x = 0;
vector<bool> sendOn(BITS, false);
int n = N;
int curr = 0;
for (int i = 0; i < n-1; i++) {
if (A[i] && A[i+1]) {
sendOn[curr] = false;
curr+=2;
}
else if (A[i]) {
sendOn[curr] = true;
curr++;
}
}
for (int i = 0; i < BITS; i++) {
if (sendOn[i]) {
x |= (1LL << i);
}
}
return x;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |