# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1154715 | WongYiKai | 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[] ){
if(K>1){
for(int i=0; i<N; i++){
Set(i, 0);
}
return;
}
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;
queue<int> e;
for (int i=0;i<N-1;i++){
if (block[i]==0 && block[i+1]==0){
e.push(i);
i += 2;
}
}
int ind = 0;
while (X>0){
int temp = e.front();
e.pop();
if (X&1){
Set(temp,1);
Set(temp+1,1);
}
else{
Set(temp,1);
Set(temp+1,0);
}
done[temp] = 1;
done[temp+1] = 1;
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;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |