fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Codechef
  6. {
  7. public static void main (String[] args) throws java.lang.Exception
  8. {
  9. // your code goes here
  10. Scanner sc=new Scanner(System.in);
  11. int t=sc.nextInt();
  12. while(t-->0){
  13. int n=sc.nextInt();
  14. int k=sc.nextInt();
  15. int[] ar=new int[n+1];
  16. for(int i=1;i<=n;i++){
  17. ar[i]=sc.nextInt();
  18. }
  19. int cnt=avgK(ar,k);
  20. System.out.println(cnt);
  21. }
  22. sc.close();
  23. }
  24. public static int avgK(int[]nums,int k){
  25. int []prefix=new int[nums.length];
  26. for(int i=1;i<nums.length;i++){
  27. prefix[i]=prefix[i-1]+nums[i];
  28. }
  29. int cnt=0;
  30. HashMap<Integer,Integer> map=new HashMap<>();
  31. map.put(-k,1);
  32. for(int j=1;j<nums.length;j++){
  33. int rhs=prefix[j]-k*j-k;
  34. cnt+=map.getOrDefault(rhs,0);
  35. int lhs=prefix[j]-k*(j+1);
  36. map.put(lhs,map.getOrDefault(lhs,0)+1);
  37. }
  38. return cnt;
  39. }
  40. }
  41.  
Success #stdin #stdout 0.13s 54452KB
stdin
3
5 4
3 4 5 6 2
4 1
1 1 3 4
5 2
1 3 2 4 2
stdout
4
3
4