/* 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
{
{
// Example input
int[] arr = {1, -1, 5, -2, 3};
int k = 3;
Map
<Long, Integer
> map
= new HashMap
<>();
long sum = 0;
int maxLen = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
// If prefix sum itself equals k
if (sum == k) {
maxLen = i + 1;
}
// If (sum - k) seen before
if (map.containsKey(sum - k)) {
maxLen
= Math.
max(maxLen, i
- map.
get(sum
- k
)); }
// Store first occurrence only
if (!map.containsKey(sum)) {
map.put(sum, i);
}
}
System.
out.
println("Largest Subarray Length: " + 1); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCSAvLyBFeGFtcGxlIGlucHV0CiAgICAgICAgaW50W10gYXJyID0gezEsIC0xLCA1LCAtMiwgM307CiAgICAgICAgaW50IGsgPSAzOwoKICAgICAgICBNYXA8TG9uZywgSW50ZWdlcj4gbWFwID0gbmV3IEhhc2hNYXA8PigpOwoKICAgICAgICBsb25nIHN1bSA9IDA7CiAgICAgICAgaW50IG1heExlbiA9IDA7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHN1bSArPSBhcnJbaV07CgogICAgICAgICAgICAvLyBJZiBwcmVmaXggc3VtIGl0c2VsZiBlcXVhbHMgawogICAgICAgICAgICBpZiAoc3VtID09IGspIHsKICAgICAgICAgICAgICAgIG1heExlbiA9IGkgKyAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiAoc3VtIC0gaykgc2VlbiBiZWZvcmUKICAgICAgICAgICAgaWYgKG1hcC5jb250YWluc0tleShzdW0gLSBrKSkgewogICAgICAgICAgICAgICAgbWF4TGVuID0gTWF0aC5tYXgobWF4TGVuLCBpIC0gbWFwLmdldChzdW0gLSBrKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFN0b3JlIGZpcnN0IG9jY3VycmVuY2Ugb25seQogICAgICAgICAgICBpZiAoIW1hcC5jb250YWluc0tleShzdW0pKSB7CiAgICAgICAgICAgICAgICBtYXAucHV0KHN1bSwgaSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGFyZ2VzdCBTdWJhcnJheSBMZW5ndGg6ICIgKyAxKTsKCX0KfQ==