fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static int cntSubarrays(int[] arr, int k) {
  11. // code here
  12. Map<Integer, Integer> prefixSumCount=new HashMap<>();
  13. int count=0;
  14. int sum=0;
  15. for(int num: arr){
  16. sum+=num;
  17. if(sum==k)count++;
  18. int targetSum=sum-k;
  19. if(prefixSumCount.containsKey(targetSum)){
  20. count+=prefixSumCount.get(targetSum);
  21. }
  22. prefixSumCount.put(sum,prefixSumCount.getOrDefault(sum,0)+1);
  23. }
  24. return count;
  25. }
  26.  
  27. public static void main(String [] args){
  28. Scanner sc=new Scanner(System.in);
  29. int n=sc.nextInt();
  30. int [] arr=new int[n];
  31. for(int i=0;i<n;i++){
  32. arr[i]=sc.nextInt();
  33. }
  34. int k=sc.nextInt();
  35. int cnt=cntSubarrays(arr,k);
  36. System.out.println("Subarrays with sum "+k+" is : "+cnt);
  37. sc.close();
  38. }
  39. }
Success #stdin #stdout 0.15s 60908KB
stdin
6
9 4 20 3 10 5
33
stdout
Subarrays with sum 33 is : 2