# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1219743 | Bula | Broken Device (JOI17_broken_device) | C++20 | 19 ms | 1344 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
void Anna(int N, long long X, int K, int P[]){
vector<int> vis(N), p(N);
for(int i = 0; i < K; i++) vis[P[i]] = 1;
for(int i = 0; i < N; i += 3){
int cnt = vis[i] + vis[i + 1] + vis[i + 2];
if(cnt >= 2) continue;
if(cnt == 0){
int a = X % 2;
X /= 2;
int b = X % 2;
X /= 2;
if(!a && b){
p[i] = 1; p[i + 1] = 1; p[i + 2] = 1;
}else if(a && !b){
p[i] = 1; p[i + 1] = 1;
}else if(a && b){
p[i] = 1; p[i + 2] = 1;
}else{
p[i + 1] = 1; p[i + 2] = 1;
}
}
if(cnt == 1){
string t = "10";
if(X % 2 == 0) t = "01";
for(int j = i; j < i + 3; j++){
if(!vis[j]){
p[j] = t[0] - '0';
t.erase(t.begin());
}
}
X /= 2;
}
}
for(int i = 0; i < N; i++) Set(i, p[i]);
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
long long Bruno(int N, int A[]){
long long ans = 0, cur = 1;
for(int i = 0; i < N; i += 3){
if(A[i] == 0 && A[i + 1] == 0 && A[i + 2] == 0) continue;
if(A[i] == 1 && A[i + 1] == 1 && A[i + 2] == 1){
cur *= 2;
ans |= cur;
cur *= 2;
}else if(A[i] == 1 && A[i + 1] == 1){
ans |= cur;
cur *= 4;
}else if(A[i] == 1 && A[i + 2] == 1){
ans |= cur;
cur *= 2;
ans |= cur;
cur *= 2;
}else if(A[i + 1] == 1 && A[i + 2] == 1){
cur *= 4;
}else if((A[i] == 1 && A[i + 2] == 0) || (A[i + 1] == 1 && A[i + 2] == 0)){
ans |= cur;
cur *= 2;
}else{
cur *= 2;
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |