# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
729342 | finn__ | XOR (IZhO12_xor) | C++17 | 216 ms | 58464 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
constexpr size_t L = 30;
struct Trie
{
Trie *c[2];
unsigned subtree_min;
Trie() { c[0] = c[1] = 0, subtree_min = UINT_MAX; }
void insert(unsigned x, unsigned j, unsigned i = 0)
{
if (i == L)
{
subtree_min = min(subtree_min, j);
return;
}
bool z = x & (1 << (L - i - 1));
if (!c[z])
c[z] = new Trie();
c[z]->insert(x, j, i + 1);
subtree_min = min(c[0] ? c[0]->subtree_min : UINT_MAX,
c[1] ? c[1]->subtree_min : UINT_MAX);
}
unsigned get_earliest_ge(unsigned x, unsigned y, unsigned i = 0)
{
if (i == L)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |