# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
17510 | 2015-12-24T02:49:32 Z | gs14004 | 비교 (balkan11_cmp) | C++14 | 0 ms | 0 KB |
#include "cmp.h" #include <vector> using namespace std; void remember(int n) { n += 4096; while(n){ bit_set(n); n >>= 1; } } int compare(int b) { b += 4096; if(bit_get(b)) return 0; vector<int> v; while(b){ v.push_back(b); b >>= 1; } reverse(v.begin(), v.end()); int s = 0, e = v.size() - 2; while(s != e){ int m = (s+e)/2; if(!bit_get(v[m])) e = m; else s = m+1; } if(v[s]%2) return 1; return -1; }