제출 #926192

#제출 시각아이디문제언어결과실행 시간메모리
926192amirhoseinfar1385Broken Device (JOI17_broken_device)C++17
100 / 100
30 ms2872 KiB
#include "Annalib.h"
#include<bits/stdc++.h>
using namespace std;

void Anna( int N, long long x, int k, int p[] ){
  vector<int>wtf(150);
  for(int i=0;i<k;i++){
  	wtf[p[i]]=1;
  }
  for(int i=0;i<N;i+=3){
  	if(wtf[i]+wtf[i+1]+wtf[i+2]>=2){
  		Set(i,0);
  		Set(i+1,0);
  		Set(i+2,0);
  		continue;
  	}
  	if(wtf[i]+wtf[i+1]+wtf[i+2]==0){
  		long long res=0;
  		res=(x&1);
  		x>>=1;
  		res+=((x&1)<<1);
  		x>>=1;
  		if(res==0){
  			Set(i,0);
  			Set(i+1,1);
  			Set(i+2,1);
  		}else if(res==1){
  			Set(i,1);
  			Set(i+1,0);
  			Set(i+2,0);
  		}else if(res==2){
  			Set(i,1);
  			Set(i+1,1);
  			Set(i+2,1);
  		}else{
  			Set(i,1);
  			Set(i+1,1);
  			Set(i+2,0);
  		}
  		continue;
  	}
  	if(x&1){
  		if(wtf[i+2]==0){
  			Set(i,0);
  			Set(i+1,0);
  			Set(i+2,1);
  			x>>=1;
  		}
  		else{
  			x>>=1;
  			if(x&1){
  				Set(i,1);
  				Set(i+1,1);
  				Set(i+2,0);
  			}
  			else{
  				Set(i,1);
  				Set(i+1,0);
  				Set(i+2,0);
  			}
  			x>>=1;
  		}
  	}
  	else{
  		if(wtf[i+1]==1){
  			Set(i,1);
  			Set(i+1,0);
  			Set(i+2,1);
  		}
  		else{
  			Set(i,0);
  			Set(i+1,1);
  			Set(i+2,0);
  		}
  		x>>=1;
  	}
  }
}
#include "Brunolib.h"
#include<bits/stdc++.h>
using namespace std;

long long Bruno( int N, int A[] ){
  long long res=0;
  vector<long long>all(150);
  for(int i=0;i<N;i++){
   // cout<<i<<" "<<A[i]<<endl;
    all[i]=A[i];
  }
  long long now=0;
  for(int i=0;i<N;i+=3){
    long long fake=all[i+2]+all[i+1]*2+all[i]*4;
   // cout<<"magemishe: "<<fake<<endl;
    if(fake==0){
      continue;
    }
    if(fake==1){
      res+=(1ll<<now);
      now++;
    }
    if(fake==2){
      now++;
    }
    if(fake==3){
      now+=2;
      continue;
    }
    if(fake==4){
      res+=(1ll<<now);
      now+=2;
    }
    if(fake==5){
      now++;
    }
    if(fake==6){
      res+=(1ll<<now)*3;
      now+=2;
    }
    if(fake==7){
      res+=(1ll<<now)*2;
      now+=2;
    }
  }
//  cout<<"wtf: "<<res<<endl;
  return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...