N^3 log N
public static int FourSumFast(int[] a){
Arrays.sort(a);
int N = a.length;
int cnt = 0;
for(int i=0;i<N;i++)
for(int j=i+1;j<N;j++)
for(int z=j+1;z<N;z++)
if(BinarySearch.rank(-a[i]-a[j]-a[z], a) > z)
cnt++;
return cnt;
}