SUMFOUR - 4 values whose sum is 0


The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) belongs to A x B x C x D are such that a + b + c + d = 0 . In the following, we assume that all lists have the same size n.

Input

The first line of the input file contains the size of the lists n (this value can be as large as 4000). We then have n lines containing four integer values (with absolute value as large as 228 ) that belong respectively to A, B, C and D.

(Edited: n <= 2500)

Output

Output should be printed on a single line.

Example

Input:
6
-45 22 42 -16
-41 -27 56 30
-36 53 -37 77
-36 30 -75 -46
26 -38 -10 62
-32 -54 -6 45

Output:
5

hide comments
sonudoo: 2017-02-05 12:24:33

If using unordered_map, choose C++14(g++ 5.1) as compiler.

up79: 2017-01-30 09:19:06

o(n^2) simple logic give you TLE :( but when u use "reserve" keyword for ur unordered map it is going to be accepted :( dont know why ! but finally AC !

souvik23: 2017-01-25 21:04:49

Simple O((n^2)logn) using unordered_map without calling "reserve" function.

vunnamtej: 2017-01-25 17:57:44

thanks to @Shubham Gupta

Mohammad_Ali: 2016-09-01 02:34:38

For those of you using unordered_map, it would be useful to call m.reserve(2*n*n).

TP: 2016-07-14 11:41:57

Don't use long long . It costs me 2 TLE .

mkfeuhrer: 2016-07-10 22:03:37

nice problem!! only stl ie sort upper bound and lower bound gave TLE ! got AC using two pointer approach after O(n*n) sum calculations!

Anuj Arora: 2016-07-10 17:35:18

AC in one shot :D

Shubham Gupta: 2016-07-06 23:55:06

If getting TLE with std::lower_bound and std::upper_bound, then try using std::equal_range!
long long is not required.
O(n^2logn) passing!

priyanshu_02: 2016-06-24 00:54:02

Don't use binary search or stl bound functions.
Instead use two pointers technique to find frequencies .
Passes without optimisations.

Last edit: 2016-06-24 01:08:15

Added by:Abhilash I
Date:2007-02-06
Time limit:1.419s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO NODEJS PERL6 VB.NET
Resource:South western 05-06