/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
// public int func(int a[] , int b[]){
// int n = a.length;
// int m = b.length;
// int len = -1;
// int maxi = Integer.MIN_VALUE;
// for(int i=0;i<n;i++){
// int z1 = 0;
// int z2 = 0;
// for(int j=i;j<n;j++){
// z1 = z1 ^ a[j];
// z2 = z2 ^ b[j];
// if(z1 == z2){
// len = j-i+1;
// maxi = Math.max(maxi,len);
// }
// }
// }
// return maxi;
// }
public int func(int a[], int b[]){
int n = a.length;
int c[] = new int[n];
for(int i=0;i<n;i++){
c[i] = a[i] ^ b[i];
}
int p[] = new int[n];
p[0] = c[0];
for(int i=1;i<p.length;i++){
p[i] = p[i-1] ^ c[i];
}
int maxi = 0;
int i=-1;
HashMap
<Integer,Integer
>map
= new HashMap
<>(); for(int j=0;j<p.length;j++){
int req = p[j] ^ 0;
if(map.containsKey(req)){
i = map.getOrDefault(req,0)+1;
}
int len = j-i+1;
maxi
= Math.
max(maxi,len
); if(!map.containsKey(p[j])){
map.put(p[j],j);
}
}
return maxi;
}
{
// your code goes here
Ideone obj = new Ideone();
int a[] = {1, 2, 3, 4};
int b[] = {1, 3, 2, 4};
int ans = obj.func(a, b);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCS8vIHB1YmxpYyBpbnQgZnVuYyhpbnQgYVtdICwgaW50IGJbXSl7CgkvLyAJaW50IG4gPSBhLmxlbmd0aDsKCS8vIAlpbnQgbSA9IGIubGVuZ3RoOwoJCQoJLy8gCWludCBsZW4gPSAtMTsKCS8vIAlpbnQgbWF4aSA9IEludGVnZXIuTUlOX1ZBTFVFOwoJLy8gCWZvcihpbnQgaT0wO2k8bjtpKyspewoJLy8gCQlpbnQgejEgPSAwOwoJLy8gCSAgICBpbnQgejIgPSAwOwoJLy8gCQlmb3IoaW50IGo9aTtqPG47aisrKXsKCS8vIAkJCXoxID0gejEgXiBhW2pdOwoJLy8gCQkJejIgPSB6MiBeIGJbal07CgkvLyAJCQlpZih6MSA9PSB6Mil7CgkvLyAJCQkJbGVuID0gai1pKzE7CgkvLyAJCQkJbWF4aSA9IE1hdGgubWF4KG1heGksbGVuKTsKCS8vIAkJCX0KCS8vIAkJfQoJLy8gCX0KCS8vIAlyZXR1cm4gbWF4aTsKCS8vIH0KCXB1YmxpYyBpbnQgZnVuYyhpbnQgYVtdLCBpbnQgYltdKXsKCQlpbnQgbiA9IGEubGVuZ3RoOwoJCWludCBjW10gPSBuZXcgaW50W25dOwoJCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCQljW2ldID0gYVtpXSBeIGJbaV07CgkJfQoJCWludCBwW10gPSBuZXcgaW50W25dOwoJCXBbMF0gPSBjWzBdOwoJCWZvcihpbnQgaT0xO2k8cC5sZW5ndGg7aSsrKXsKCQkJcFtpXSA9IHBbaS0xXSBeIGNbaV07CgkJfQoJCWludCBtYXhpID0gMDsKCQlpbnQgaT0tMTsKCQlIYXNoTWFwPEludGVnZXIsSW50ZWdlcj5tYXAgPSBuZXcgSGFzaE1hcDw+KCk7CgkJZm9yKGludCBqPTA7ajxwLmxlbmd0aDtqKyspewoJCQlpbnQgcmVxID0gcFtqXSBeIDA7CgkJCWlmKG1hcC5jb250YWluc0tleShyZXEpKXsKCQkJCSBpID0gbWFwLmdldE9yRGVmYXVsdChyZXEsMCkrMTsKCQkJfQoJCQlpbnQgbGVuID0gai1pKzE7CgkJCW1heGkgPSBNYXRoLm1heChtYXhpLGxlbik7CgkJCWlmKCFtYXAuY29udGFpbnNLZXkocFtqXSkpewoJCQkJbWFwLnB1dChwW2pdLGopOwoJCQl9CgkJfQoJCXJldHVybiBtYXhpOwoJfQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCUlkZW9uZSBvYmogPSBuZXcgSWRlb25lKCk7CgogICAgICAgIGludCBhW10gPSB7MSwgMiwgMywgNH07CiAgICAgICAgaW50IGJbXSA9IHsxLCAzLCAyLCA0fTsKCiAgICAgICAgaW50IGFucyA9IG9iai5mdW5jKGEsIGIpOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYW5zKTsKCX0KfQ==