import java.util.*;
public class Main {
public static int largestSubarraySumK(int[] arr, int k) {
HashMap
<Integer, Integer
> map
= new HashMap
<>();int maxLength=0;
int sum=0;
map.put(0,-1);
for(int i=0;i<arr.length;i++){
sum+=arr[i];
if(map.containsKey(sum-k)){
maxLength
=Math.
max(maxLength,i
-map.
get(sum
-k
)); }
map.putIfAbsent(sum,i);
}
return maxLength;
}
public static void main
(String[] args
) {
int[] arr = {1, -1, 5, -2, 3};
int k = 3;
System.
out.
println(largestSubarraySumK
(arr, k
)); }
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewoKICAgIHB1YmxpYyBzdGF0aWMgaW50IGxhcmdlc3RTdWJhcnJheVN1bUsoaW50W10gYXJyLCBpbnQgaykgewoKICAgICAgICBIYXNoTWFwPEludGVnZXIsIEludGVnZXI+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKaW50IG1heExlbmd0aD0wOwppbnQgc3VtPTA7Cm1hcC5wdXQoMCwtMSk7CmZvcihpbnQgaT0wO2k8YXJyLmxlbmd0aDtpKyspewogICAgc3VtKz1hcnJbaV07CiAgICBpZihtYXAuY29udGFpbnNLZXkoc3VtLWspKXsKICAgICAgICBtYXhMZW5ndGg9TWF0aC5tYXgobWF4TGVuZ3RoLGktbWFwLmdldChzdW0taykpOwogICAgfQogICAgbWFwLnB1dElmQWJzZW50KHN1bSxpKTsKfQogICAgICAgIHJldHVybiBtYXhMZW5ndGg7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKICAgICAgICBpbnRbXSBhcnIgPSB7MSwgLTEsIDUsIC0yLCAzfTsKICAgICAgICBpbnQgayA9IDM7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsYXJnZXN0U3ViYXJyYXlTdW1LKGFyciwgaykpOwogICAgfQp9