Submission #1235485

#TimeUsernameProblemLanguageResultExecution timeMemory
1235485caacrugonBroken Device (JOI17_broken_device)C++20
41 / 100
33 ms1512 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;
  }
  int o=0,u=0,z=0;
  for( int i=0;i<N;i++){
    if(u==1){
      u=0;
      ln[i]=1;
      continue;
    }else if(o==1){
      o=0;
      continue;
    }
    if(i+1<N && ln[i]==0 && ln[i+1]==-1){
      bool esc=(X>>z)&1;
      if(!esc){
        z++;
        ln[i]=1;
        o=1;
      }
    }else if(i+1<N && ln[i]==0 && ln[i+1]==0){
      bool esc=(X>>z)&1;
      if(esc){
        z++;
        ln[i]=1;
        u=1;
      }else{
        z++;
        ln[i]=1;
        o=1;
      }
    }
  }
  for(int i=0;i<N;i++){
    if(ln[i]==0 || ln[i]==-1)Set( i, 0 );
    else Set(i,1);
  }
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long

long long Bruno( int N, int A[] ){
  ll u=0;
  vector<int> bits;
  for(int i=0;i<N;i++){
    if(u==1){
      u=0;
      continue;
    }
    if(i+1<N && A[i]==1 && A[i+1]==0){
      bits.push_back(0);
      u=1;
    }else if(i+1<N && A[i]==1 && A[i+1]==1){
      bits.push_back(1);
      u=1;
    }
  }
  ll x=0;
  for(int i=bits.size()-1;i>=0;i--){
    x=(x<<1)|bits[i];
  }
  return x;
}
#Verdict Execution timeMemoryGrader output
Fetching results...