Submission #1141859

#TimeUsernameProblemLanguageResultExecution timeMemory
1141859ereringcmp (balkan11_cmp)C++20
0 / 100
417 ms87396 KiB
#include <bits/stdc++.h>
#include "cmp.h"
using namespace std;
#define pb push_back
void remember(int n) {
  int x=1;
  string s="1";
  for(int i=1;i<=6;i++){
    if(i!=4)bit_set(n%4+x);
    if(i>3)s+=to_string(n%4);
    x+=4;
    n/=4;
  }
  bit_set(stoi(s));
}

int compare(int b) {
  vector<int> v;
  string s="1";
  for(int i=1;i<=6;i++){
    v.pb(b%4);
    if(i>3)s+=to_string(b%4);
    b/=4;
  }
  bool flag=0;
  if(bit_get(stoi(s)))flag=1;
  int f=4*5+1;
  for(int i=v.size()-1;i>=0;i--) {
    if (flag && i >= 3) {
      f -= 4;
      continue;
    }
    if (i == 3) {
      int x=v[i];
      string s = "1" + to_string(x), s1 = to_string(v[i + 1]) + to_string(v[i + 2]);
      int r = bit_get(stoi(s + s1));
      if (r == 1) {
        f -= 4;
        continue;
      }
      if (x == 3)return 1;
      if (x == 0)return -1;
      if (x == 2) {
        r = bit_get(stoi(s + s1) + 1);
        if (r == 1)return -1;
        else return 1;
      }
      if (x == 1) {
        r = bit_get(stoi(s + s1) - 1);
        if (r == 1)return 1;
        else return -1;
      }
      f -= 4;
    }
    else{
      int x=v[i];
      int r=bit_get(f+x);
      if(r==1){
        f-=4;
        continue;
      }
      if(x==3)return 1;
      if(x==0)return -1;
      if(x==2){
        r=bit_get(f+x+1);
        if(r==1)return -1;
        else return 1;
      }
      if(x==1){
        r=bit_get(f+x-1);
        if(r==1)return 1;
        else return -1;
      }
      f-=4;
    }
  }
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...