# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1219751 | pera | Broken Device (JOI17_broken_device) | C++20 | 0 ms | 320 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
void Anna( int N, long long X, int K, int P[] ){
vector<int> mark(N);
for(int i = 0;i < K;i ++){
mark[P[i]] = 1;
}
for(int i = 0;i < N;i += 3){
int c = mark[i] + mark[i + 1] + mark[i + 2];
if(c >= 2){
continue;
}
int bit = X % 2;
int nbit = (X / 2) % 2;
if(c == 0){
if(bit && nbit){
Set(i , 1);
Set(i + 1 , 1);
Set(i + 2 , 1);
}else if(bit && !nbit){
Set(i , 1);
Set(i + 1 , 0);
Set(i + 2 , 1);
}else if(!bit && nbit){
Set(i , 0);
Set(i + 1 , 1);
Set(i + 2 , 0);
}else{
Set(i , 0);
Set(i + 1 , 1);
Set(i + 2 , 1);
}
X /= 2;
X /= 2;
}else{
if(bit){
if(mark[i + 2]){
Set(i , 1);
Set(i + 1 , 1);
Set(i + 2 , 0);
}else{
Set(i , 0);
Set(i + 1 , 0);
Set(i + 2 , 1);
}
X /= 2;
}else{
if(!mark[i]){
Set(i , 1);
Set(i + 1 , 0);
Set(i + 2 , 0);
}else{
if(nbit){
Set(i , 0);
Set(i + 1 , 1);
Set(i + 2 , 0);
}else{
Set(i , 0);
Set(i + 1 , 1);
Set(i + 2 , 1);
}
X /= 2;
}
X /= 2;
}
}
}
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
long long Bruno( int N, int A[] ){
long long ans = 0;
int bit = 0;
for(int i = 0;i < N;i += 3){
if(A[i] + A[i + 1] + A[i + 2] == 0){
continue;
}
if(A[i] && A[i + 1] && !A[i + 2]){
ans += (1LL << bit);
bit += 1;
}else if(!A[i] && !A[i + 1] && A[i + 2]){
ans += (1LL << bit);
bit += 1;
}else if(A[i] && A[i + 1] && A[i + 2]){
ans += (1LL << bit);
ans += (1LL << (bit + 1));
bit += 2;
}else if(A[i] && !A[i + 1] && !A[i + 2]){
bit += 1;
}else if(A[i] && !A[i + 1] && A[i + 2]){
ans += (1LL << bit);
bit += 2;
}else if(!A[i] && A[i + 1] && !A[i + 2]){
ans += (1LL << (bit + 1));
bit += 2;
}else{
bit += 2;
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |