304 North Cardinal St.
Dorchester Center, MA 02124

# Xor it CodeChef Solution

## Xor it CodeChef Solution in C++14

``````#include <iostream>
#include <algorithm>

using namespace std;

int n,k;

long long a[100001];
long long e[31];

int sol[10000000];
int solv;

int main()
{
ios::sync_with_stdio(0);

cin >> n >> k;
for(int i=0; i<n; i++) cin >> a[i];
sort(a,a+n);

int m(0);
int en = 31;
for(int i=30; i>=0; i--) {
m |= 1<<i;

long long db(1ll);
for(int j = 1; j<n; j++) {
if((a[j]&m) == (a[j-1]&m)) {
db++;
} else {
e[i] += (db*(db-1)) / 2ll;
db = 1ll;
}
}
e[i] += (db*(db-1)) / 2ll;

if(e[i] >= k) en = i;
}

if(en == 0) {
for(int i=0; i<k; i++) {
cout << "0 ";
}
cout << endl;
return 0;
}

m = 0;
for(int i=30; i>=en; i--) m |= 1<<i;

for(int i=0; i<n; i++) {
for(int j=i+1; (j<n) && ((a[j]&m)==(a[i]&m)); j++) {
sol[solv++] = a[i]^a[j];
if(solv > 10000000) return 101;
}
}

sort(sol,sol+solv);

for(int i=0; i<k; i++) {
cout << sol[i] << " ";
}
cout << endl;

return 0;
}``````

## Xor it CodeChef Solution in C

``````#include<stdio.h>
#include<stdlib.h>

int cmp(const void *a,const void *b) {
unsigned a1=*(unsigned *)a,b1=*(unsigned *)b;
if (a1<b1) return -1; else if (a1>b1) return 1; else return 0;
}

unsigned a[100000];
unsigned b[600000];
int N,K;

int main() {
int i, j, k, l;
long long testcase;
scanf("%d %d",&N,&K);
for(i = 0; i < N; i++) scanf("%u", &a[i]);
qsort(a, N, sizeof(a[0]), cmp);
for(i = 0; i < 31; i++) {
for(testcase = j = k = 0; j < N; j++) if ((a[j] >> i) != (a[k] >> i)) {
testcase += (long long)(j - k)*(j - k -1) / 2;
k = j;
}
testcase += (long long)(j - k)*(j - k -1) / 2;
if (testcase >= K) break;
}
if (!i) {
for(i = 0; i < K; i++) {
if (1) putchar(' ');
putchar('0');
}
puts("");
return 0;
}
for(testcase = j = k = 0; j < N; j++) {
if ((a[j] >> i) == (a[k] >> i)) for(l = k; l < j; l++) b[testcase++] = a[j]^a[l]; else k = j;
}
qsort(b, testcase, sizeof(b[0]), cmp);
for(i = 0; i < K; i++) {
if (i) putchar(' ');
printf("%u", b[i]);
}
puts("");
return 0;
}``````

## Xor it CodeChef Solution in JAVA

``````import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.AbstractList;
import java.io.Writer;
import java.util.List;
import java.io.IOException;
import java.util.Arrays;
import java.util.InputMismatchException;
import java.math.BigInteger;
import java.io.InputStream;

/**
* Built using CHelper plug-in
* Actual solution is at the top
* @author Egor Kulikov (egor@egork.net)
*/
public class Main {
public static void main(String[] args) {
InputStream inputStream = System.in;
OutputStream outputStream = System.out;
OutputWriter out = new OutputWriter(outputStream);
XorIt solver = new XorIt();
solver.solve(1, in, out);
out.close();
}
}

class XorIt {
public void solve(int testNumber, InputReader in, OutputWriter out) {
Arrays.sort(array);
for (int i = 0; i <= 31; i++) {
int mask = -(1 << i);
int cnt = 0;
int same = 1;
for (int j = 1; j < count; j++) {
cnt += same++;
else
same = 1;
}
if (cnt < qty)
continue;
if (i == 0) {
return;
}
int start = 0;
int index = 0;
for (int j = 1; j <= count; j++) {
if (j < count && (array[j] & mask) == (array[j - 1] & mask))
continue;
for (int k = start; k < j; k++) {
for (int l = k + 1; l < j; l++)
}
start = j;
}
return;
}
}
}

private InputStream stream;
private byte[] buf = new byte[1024];
private int curChar;
private int numChars;

this.stream = stream;
}

if (numChars == -1)
throw new InputMismatchException();
if (curChar >= numChars) {
curChar = 0;
try {
} catch (IOException e) {
throw new InputMismatchException();
}
if (numChars <= 0)
return -1;
}
return buf[curChar++];
}

while (isSpaceChar(c))
int sgn = 1;
if (c == '-') {
sgn = -1;
}
int res = 0;
do {
if (c < '0' || c > '9')
throw new InputMismatchException();
res *= 10;
res += c - '0';
} while (!isSpaceChar(c));
return res * sgn;
}

public static boolean isSpaceChar(int c) {
return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
}

}

class OutputWriter {
private final PrintWriter writer;

public OutputWriter(OutputStream outputStream) {
writer = new PrintWriter(outputStream);
}

public OutputWriter(Writer writer) {
this.writer = new PrintWriter(writer);
}

public void print(Object...objects) {
for (int i = 0; i < objects.length; i++) {
if (i != 0)
writer.print(' ');
writer.print(objects[i]);
}
}

public void printLine(Object...objects) {
print(objects);
writer.println();
}

public void close() {
writer.close();
}

}

class IOUtils {

int[] array = new int[size];
for (int i = 0; i < size; i++)
return array;
}

}

abstract class Array<T> extends AbstractList<T> {

public static List<Integer> wrap(int...array) {
return new IntArray(array);
}

protected static class IntArray extends Array<Integer> {
protected final int[] array;

protected IntArray(int[] array) {
this.array = array;
}

public int size() {
return array.length;
}

public Integer get(int index) {
return array[index];
}

public Integer set(int index, Integer value) {
int result = array[index];
array[index] = value;
return result;
}
}

}
``````
##### Xor it CodeChef Solution Review:

In our experience, we suggest you solve this Xor it CodeChef Solution and gain some new skills from Professionals completely free and we assure you will be worth it.

If you are stuck anywhere between any coding problem, just visit Queslers to get the Xor it CodeChef Solution.

Find on CodeChef

##### Conclusion:

I hope this Xor it CodeChef Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Coding Solutions.

This Problem is intended for audiences of all experiences who are interested in learning about Programming Language in a business context; there are no prerequisites.

Keep Learning!