Submission #69682783
Source Code Expand
import java.io.*;
import java.util.*;
class TrieNode {
TrieNode[] children = new TrieNode[2];
}
public class Main {
static TrieNode root = new TrieNode();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
long m = Long.parseLong(st.nextToken());
st = new StringTokenizer(br.readLine());
Set<Integer> set = new TreeSet<>();
for (int i = 0; i < n; i++) {
set.add(Integer.parseInt(st.nextToken()));
}
for (int num : set) {
insert(num);
}
System.out.println(calculateSum(0, m, 30));
br.close();
}
static void insert(int num) {
TrieNode curr = root;
for (int i = 30; i >= 0; i--) {
int bit = (num >> i) & 1;
if (curr.children[bit] == null) {
curr.children[bit] = new TrieNode();
}
curr = curr.children[bit];
}
}
static int query(int x) {
TrieNode curr = root;
int result = 0;
for (int i = 30; i >= 0; i--) {
int bit = (x >> i) & 1;
if (curr.children[bit] != null) {
curr = curr.children[bit];
} else {
result |= (1 << i);
curr = curr.children[1 - bit];
}
}
return result;
}
static long calculateSum(long l, long r, int bit) {
if (l >= r || bit < 0) return 0;
if (r - l <= 100000) {
long sum = 0;
for (long x = l; x < r; x++) {
sum += query((int)x);
}
return sum;
}
long mask = 1L << bit;
long mid = ((l + mask - 1) / mask) * mask;
if (mid >= r) {
return calculateSum(l, r, bit - 1);
}
return calculateSum(l, mid, bit - 1) + calculateSum(mid, r, bit - 1);
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | G - Sum of Min of XOR |
| User | addy |
| Language | Java (OpenJDK 17) |
| Score | 0 |
| Code Size | 2251 Byte |
| Status | WA |
| Exec Time | 909 ms |
| Memory | 192816 KiB |
Judge Result
| Set Name | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 575 | ||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_handmade_00.txt, 01_handmade_01.txt, 01_handmade_02.txt, 01_handmade_03.txt, 01_handmade_04.txt, 01_handmade_05.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt, 02_random_10.txt, 02_random_11.txt, 02_random_12.txt, 02_random_13.txt, 02_random_14.txt, 02_random_15.txt, 02_random_16.txt, 02_random_17.txt, 02_random_18.txt, 02_random_19.txt, 02_random_20.txt, 02_random_21.txt, 02_random_22.txt, 02_random_23.txt, 02_random_24.txt, 02_random_25.txt, 02_random_26.txt, 02_random_27.txt, 02_random_28.txt, 02_random_29.txt, 02_random_30.txt, 02_random_31.txt, 02_random_32.txt, 02_random_33.txt, 02_random_34.txt, 02_random_35.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 40 ms | 34528 KiB |
| 00_sample_01.txt | AC | 40 ms | 34620 KiB |
| 00_sample_02.txt | AC | 48 ms | 35284 KiB |
| 01_handmade_00.txt | AC | 39 ms | 34760 KiB |
| 01_handmade_01.txt | AC | 39 ms | 34664 KiB |
| 01_handmade_02.txt | WA | 37 ms | 34572 KiB |
| 01_handmade_03.txt | AC | 38 ms | 34592 KiB |
| 01_handmade_04.txt | WA | 39 ms | 34580 KiB |
| 01_handmade_05.txt | WA | 561 ms | 150244 KiB |
| 02_random_00.txt | WA | 863 ms | 187784 KiB |
| 02_random_01.txt | WA | 869 ms | 187776 KiB |
| 02_random_02.txt | WA | 857 ms | 187760 KiB |
| 02_random_03.txt | WA | 865 ms | 187736 KiB |
| 02_random_04.txt | WA | 873 ms | 187792 KiB |
| 02_random_05.txt | WA | 322 ms | 96980 KiB |
| 02_random_06.txt | WA | 270 ms | 81784 KiB |
| 02_random_07.txt | WA | 518 ms | 112836 KiB |
| 02_random_08.txt | WA | 517 ms | 119412 KiB |
| 02_random_09.txt | WA | 650 ms | 156176 KiB |
| 02_random_10.txt | WA | 850 ms | 187680 KiB |
| 02_random_11.txt | WA | 853 ms | 187728 KiB |
| 02_random_12.txt | WA | 850 ms | 187708 KiB |
| 02_random_13.txt | WA | 876 ms | 187588 KiB |
| 02_random_14.txt | WA | 909 ms | 192816 KiB |
| 02_random_15.txt | WA | 285 ms | 81820 KiB |
| 02_random_16.txt | WA | 613 ms | 152188 KiB |
| 02_random_17.txt | WA | 596 ms | 150388 KiB |
| 02_random_18.txt | WA | 334 ms | 96496 KiB |
| 02_random_19.txt | WA | 842 ms | 182364 KiB |
| 02_random_20.txt | WA | 195 ms | 55780 KiB |
| 02_random_21.txt | WA | 194 ms | 55740 KiB |
| 02_random_22.txt | WA | 240 ms | 57772 KiB |
| 02_random_23.txt | WA | 272 ms | 58568 KiB |
| 02_random_24.txt | WA | 313 ms | 72708 KiB |
| 02_random_25.txt | WA | 311 ms | 72328 KiB |
| 02_random_26.txt | WA | 416 ms | 89660 KiB |
| 02_random_27.txt | WA | 381 ms | 90160 KiB |
| 02_random_28.txt | WA | 486 ms | 106576 KiB |
| 02_random_29.txt | WA | 478 ms | 106696 KiB |
| 02_random_30.txt | WA | 556 ms | 150480 KiB |
| 02_random_31.txt | WA | 551 ms | 150460 KiB |
| 02_random_32.txt | WA | 566 ms | 150284 KiB |
| 02_random_33.txt | WA | 808 ms | 186996 KiB |
| 02_random_34.txt | WA | 801 ms | 186988 KiB |
| 02_random_35.txt | WA | 799 ms | 186972 KiB |