# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1239931 | 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;
}
int curr = 0;
for (int i = 0; i < BITS; i++) {
int send = ((x >> i) & 1);
if (send == 1) {
while (!ok[curr]) {
assert(curr >= 0 && curr < n);
Set(curr, 0);
curr++;
}
assert(curr >= 0 && curr < n);
Set(curr, 1);
if (curr < n-1) {
assert(curr + 1 >= 0 && curr + 1 < n);
Set(curr+1, 0);
}
curr+=2;
continue;
}
else {
while (!ok[curr] || !ok[curr+1]) {
assert(curr >= 0 && curr < n);
Set(curr, 0);
curr++;
}
assert(curr >= 0 && curr < n);
Set(curr, 1);
assert(curr + 1>= 0 && curr + 1< n);
Set(curr+1, 1);
curr += 2;
}
}
while (curr < n) {
assert(curr >= 0 && 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... |