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. /*
  10. number of unordered quadruplets (i,j,k,l) such that b[i] + b[j] + b[k] + b[l] = 0
  11.  
  12. */
  13.  
  14.  
  15. //O(n^4) ;
  16. Scanner sc = new Scanner(System.in) ;
  17. int n = sc.nextInt() ;
  18. int arr[] = new int[n] ;
  19.  
  20. for(int i = 0 ; i < n ; i++) {
  21. arr[i] = sc.nextInt() ;
  22. }
  23.  
  24.  
  25. Map<Integer , Integer > map = new HashMap<>() ;
  26.  
  27. for(int i = 3 ; i < n ; i++) {
  28. map.put(arr[i] , map.getOrDefault(arr[i] , 0 ) + 1) ;
  29. }
  30. int count = 0 ;
  31. for(int i = 0 ; i < n ; i++) {
  32. for(int j = i + 1 ; j < n ; j++) {
  33. for(int k = j + 1 ; k < n-1 ; k++) {
  34. int sum = 0 - (arr[i] + arr[j] + arr[k]) ;
  35. if(map.containsKey(sum)) {
  36. count += map.get(sum) ;
  37. }
  38.  
  39. //remove frequency from map
  40. map.put(arr[k+1] , map.get(arr[k+1])-1) ;
  41. }
  42. //again updated the frequency ;
  43. for(int k = j + 3 ; k < n ; k++) {
  44. map.put(arr[k] , map.getOrDefault(arr[k] , 0) + 1) ;
  45. }
  46. }
  47. }
  48.  
  49. System.out.println(count);
  50. }
  51. }
  52.  
Runtime error #stdin #stdout #stderr 0.14s 56568KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Exception in thread "main" java.util.NoSuchElementException
	at java.base/java.util.Scanner.throwFor(Scanner.java:937)
	at java.base/java.util.Scanner.next(Scanner.java:1594)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
	at Codechef.main(Main.java:17)