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));
    }
}