제출 #1142268

#제출 시각아이디문제언어결과실행 시간메모리
1142268Aria_lix19cmp (balkan11_cmp)C++20
0 / 100
730 ms66096 KiB
#include "cmp.h" #include "bits/stdc++.h" using namespace std; vector<vector<int>>allmemory(6), allmemory2(6); vector<int> turnto4(int n){ vector<int>base4; int y = 6; while(y--){ base4.push_back(n%4); n /= 4; } reverse(base4.begin(),base4.end()); return base4; } long long turnto10(vector<int>&n){ long long num = 0; for(int i = 0; i < n.size(); i++){ num += (pow(4, n.size()-1-i)*n[i]); } return num; } vector<int>A, B; void remember(int a){ A = turnto4(a); for(int i = 0; i < 6; i++){ allmemory[i].resize(pow(4, i+1)+1); } vector<int>sub; for(int i = 0; i < 6; i++){ sub.push_back(A[i]); allmemory[i][turnto10(sub)] = 1; } } int compare(int b){ for(int i = 0; i < 6; i++){ allmemory2[i].resize(pow(4, i+1)); } B = turnto4(b); vector<int>sub; for(int i = 0; i < 6; i++){ sub.push_back(B[i]); allmemory2[i][turnto10(sub)] = 1; } int l = 0, r = 5, mid; bool flag = 0; while(l <= r){ mid = (l+r)/2; if(allmemory[mid] != allmemory2[mid]){ flag = 1; r = mid-1; } else{ l = mid+1; } } if(!flag) return 0; else if(B[l] == 0) return -1; else if(B[l] == 3) return 1; else if(B[l] == 2){ if(B[l] == 3) return -1; else return 1; } else{ if(B[l] == 0) return 1; else return -1; } }
#Verdict Execution timeMemoryGrader output
Fetching results...