# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1219756 | Bula | Broken Device (JOI17_broken_device) | C++20 | 20 ms | 1552 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;
int a = (X % 2), b = (X / 2) % 2;
if(cnt == 0){
if(a && b){
p[i] = 1; p[i + 1] = 1; p[i + 2] = 1;
}else if(a && !b){
p[i] = 1; p[i + 2] = 1;
}else if(!a && b){
p[i + 1] = 1; p[i + 2] = 1;
}else{
p[i + 1] = 1;
}
X /= 4;
}
if(cnt == 1){
if(a){
if(vis[i + 2]){
p[i] = 1; p[i + 1] = 1;
}else{
p[i + 2] = 1;
}
X /= 2;
}else{
if(!vis[i]){
p[i] = 1;
X /= 2;
}else{
p[i + 1] = 1;
if(b){
p[i + 2] = 1;
}
X /= 4;
}
}
}
}
for(int i = 0; i < N; i++) Set(i, p[i]);
}
//1 1 1 - 1 1
//1 1 0 - 1
//0 0 1 - 1
//1 0 1 - 1 0
//0 1 1 - 0 1
//1 0 0 - 0
//0 1 0 - 0 0
#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] && !A[i + 1] && !A[i + 2]) continue;
if(A[i] && A[i + 1] && A[i + 2]){
ans |= cur;
cur *= 2;
ans |= cur;
cur *= 2;
}else if(A[i] && A[i + 1]){
ans |= cur;
cur *= 2;
}else if(A[i] && A[i + 2]){
ans |= cur;
cur *= 4;
}else if(A[i + 1] && A[i + 2]){
cur *= 2;
ans |= cur;
cur *= 2;
}else if(A[i]){
cur *= 2;
}else if(A[i + 1]){
cur *= 4;
}else{
ans |= cur;
cur *= 2;
}
}
return ans;
}
//1 1 1 - 1 1
//1 1 0 - 1
//0 0 1 - 1
//1 0 1 - 1 0
//0 1 1 - 0 1
//1 0 0 - 0
//0 1 0 - 0 0
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |