C1159 - 和为0的4个值
题目描述
SUM 问题可以表述如下:给定四个整数列表 A、B、C 和 D,计算满足以下条件的四元组 (a, b, c, d) ∈ A × B × C × D 的个数:
a + b + c + d = 0
以下假设所有列表的大小相同,均为 n。
输入格式
输入文件的第一行包含列表的大小 n(该值最大可以达到 4000)。随后有 n 行,每行包含四个整数值(绝对值最大可达 228),分别属于 A、B、C 和 D。
输出格式
程序需要输出四元组的数量,这些四元组的和为零。
样例 #1
样例输入 #1
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
样例输出 #1
5
示例解释:确实,以下五个四元组的和为零:(-45, -27, 42, 30)、(26, 30, -10, -46)、(-32, 22, 56, -46)、(-32, 30, -75, 77)、(-32, -54, 56, 30)。
样例 #2
样例输入 #2
3
3 1 -11 17
17 9 -13 -1
-10 15 9 -15
样例输出 #2
2
补充说明
(a, b, c, d) ∈ A × B × C × D 的含义是:
笛卡尔积:
A × B × C × D表示四个列表A、B、C、D的笛卡尔积。简单来说,笛卡尔积就是从每个列表中各取一个元素,形成一个四元组
(a, b, c, d)。举例:如果 A = {1, 2}, B = {3}, C = {4}, D = {5, 6},那么
A × B × C × D的所有可能组合是:{(1, 3, 4, 5), (1, 3, 4, 6), (2, 3, 4, 5), (2, 3, 4, 6)}
四元组的范围:
(a, b, c, d) ∈ A × B × C × D的意思是:a是从A中选的一个元素,b是从B中选的一个元素,c是从C中选的一个元素,d是从D中选的一个元素。问题的核心:在所有可能的四元组中,找出那些满足
a + b + c + d = 0的组合。
测试点数目
共10个测试点,每个测试点10分
时间与内存限制
每个测试点时间:1000ms(1.0s),内存:256MiB
输入输出模式
本OJ支持两种输入输出模式