# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1236699 | caacrugon | Broken Device (JOI17_broken_device) | C++20 | 29 ms | 1540 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
void Anna(int N, long long X, int K, int P[]){
vector<int> ln(N,0);
for(int i=0;i<K;i++){
ln[P[i]]=-1;
}
vector<int> bits;
for(int i=0;i<N;++i){
if((X>>i)==0)break;
bits.push_back((X>>i)&1LL);
}
int z=0;
for(int i=1;i<N;i+=2){
if(z>=bits.size()) break;
if(ln[i-1]==-1 && ln[i]==-1){
continue;
}else if(ln[i-1]==0 && (ln[i]==0 || ln[i]==-1) && bits[z]==0){
ln[i-1]=1;
z++;
}else if((ln[i-1]==0 || ln[i-1]==-1) && ln[i]==0 && bits[z]==1){
ln[i-1]=1;
ln[i]=1;
z++;
}
}
for(int i=0;i<N;i++){
if(ln[i]==1) Set(i,1);
else Set(i,0);
}
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
long long Bruno(int N, int A[]){
vector<ll> bits;
ll x=0;
for(int i=1;i<N;i+=2){
if(A[i-1]==0 && A[i]==0){
continue;
}else if(A[i-1]==1 && A[i]==0){
bits.push_back(0);
}else if((A[i-1]==0 || A[i-1]==1) && A[i]==1){
bits.push_back(1);
}
}
for(int i=bits.size()-1;i>=0;i--){
x=(x<<1)|bits[i];
}
return x;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |