제출 #1142198

#제출 시각아이디문제언어결과실행 시간메모리
1142198SulAcmp (balkan11_cmp)C++20
55 / 100
1058 ms96172 KiB
#include "cmp.h" #include <iostream> #include <string> using namespace std; int cum[7]; //string quat(int n) { // string s(6, '0'); // for (int i = 0; i < 6; i++) // s[i] += (n >> i*2) & 3; // reverse(s.begin(), s.end()); // return s; //} void remember(int a) { cum[0] = 1; for (int i = 1; i < 7; i++) { cum[i] = cum[i-1] + (1 << (14 - 2*i)); } for (int i = 0; i < 7; i++) { bit_set(cum[i] + (a >> i*2)); // cout << quat((a >> i*2)) << '\n'; } // cout<<'\n'; } int compare(int b) { // cout<<quat(b)<<'\n'; for (int i = 6; i >= 0; i--) if (!bit_get(cum[i] + (b >> i*2))) { b >>= 2*i; if (b % 4 == 0) return -1; if (b % 4 == 1) return bit_get(b + cum[i] - 1) ? 1 : -1; if (b % 4 == 2) return bit_get(b + cum[i] + 1) ? -1 : 1; if (b % 4 == 3) return 1; } return 0; // short l = 0, r = 7; // while (l+1 < r) { // short mid = (l+r)/2; // cout << mid << ' ' << quat((b >> mid*2)) << ' '<< bit_get(cum[mid] + (b >> mid*2))<< '\n'; // if (bit_get(cum[mid] + (b >> mid*2))) { // r = mid; // } else { // l = mid; // } // } }
#Verdict Execution timeMemoryGrader output
Fetching results...