Submission #1236699

#TimeUsernameProblemLanguageResultExecution timeMemory
1236699caacrugonBroken Device (JOI17_broken_device)C++20
41 / 100
29 ms1540 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 timeMemoryGrader output
Fetching results...