# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1154757 | WongYiKai | Broken Device (JOI17_broken_device) | C++20 | 0 ms | 0 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
void Anna( int N, long long X, int K, int P[] ){
int block[N+5],done[N+5];
memset(block,0,sizeof(block));
memset(done,0,sizeof(done));
for (int i=0;i<K;i++) block[P[i]] = 1;
vector<int> e;
int count=0
while (count <N-1){
if (block[count]==0 && block[count+1]==0){
e.push_back(count);
count += 1;
}
count++;
}
int ind = 0;
while (X>0){
if (X&1){
Set(e[ind],1);
Set(e[ind]+1,1);
done[e[ind]] = 1;
done[e[ind]+1] = 1;
}
else{
Set(e[ind],1);
Set(e[ind]+1,0);
done[e[ind]] = 1;
done[e[ind]+1] = 1;
}
ind++;
X = X>>1;
}
for (int i=0;i<N;i++){
if (done[i]==0) Set(i,0);
}
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
long long Bruno( int N, int A[] ){
long long ans = 0;
int curr = 0;
for (int i=0;i<N-1;i++){
if (A[i]==1){
if (A[i+1]==1){
ans += (1<<curr);
}
curr++;
i++;
}
}
return curr;
}