309556: CF1698C. 3SUM Closure

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

3SUM Closure

题意翻译

我们定义一个数组是 “3SUM-closed” 的,当且仅当对于任意满足 $1\le i<j<k\le n$ 的三个数 $(i,j,k)$,都存在有 $1\le l\le n$,使得 $a_i+a_j+a_k=a_l$。 现在给你 $T$ 个数组,对于每个数组,若它是“3SUM-closed”的,则输出 `YES`(大小写不敏感,下同);若不是,则输出 `NO`。 **【输入格式】** 第一行包含一个正整数 $T(1\le T\le1000)$,表示数据组数。 接下来每组第一行包含一个正整数 $n(3\le n\le2\times10^5)$,表示数组的长度。 每组第二行表示所给的数组 $a(-10^9\le a_i\le10^9)$。 **【输出格式】** 对于每组数据,若所给数组是“3SUM-closed”的,则输出 `YES`(大小写不敏感,下同);若不是,则输出 `NO`。 **【样例解释】** 对于第一组数据,当 $i=1,j=2,k=3$ 时,$a_1+a_2+a_3=0$,且 $a_2=0$,所以这个数组是“3SUM-closed”的。 对于第二组数据,$a_1+a_4+a_5=-1$,而数组中没有 $-1$,所以该数组不是“3SUM-closed”的。 对于第三组数据,对于每一个 $i,j,k$,都有 $a_i+a_j+a_k=0$,且 $0$ 存在于数组中,所以该数组是“3SUM-closed”的。

题目描述

You are given an array $ a $ of length $ n $ . The array is called 3SUM-closed if for all distinct indices $ i $ , $ j $ , $ k $ , the sum $ a_i + a_j + a_k $ is an element of the array. More formally, $ a $ is 3SUM-closed if for all integers $ 1 \leq i < j < k \leq n $ , there exists some integer $ 1 \leq l \leq n $ such that $ a_i + a_j + a_k = a_l $ . Determine if $ a $ is 3SUM-closed.

输入输出格式

输入格式


The first line contains an integer $ t $ ( $ 1 \leq t \leq 1000 $ ) — the number of test cases. The first line of each test case contains an integer $ n $ ( $ 3 \leq n \leq 2 \cdot 10^5 $ ) — the length of the array. The second line of each test case contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ -10^9 \leq a_i \leq 10^9 $ ) — the elements of the array. It is guaranteed that the sum of $ n $ across all test cases does not exceed $ 2 \cdot 10^5 $ .

输出格式


For each test case, output "YES" (without quotes) if $ a $ is 3SUM-closed and "NO" (without quotes) otherwise. You can output "YES" and "NO" in any case (for example, strings "yEs", "yes" and "Yes" will be recognized as a positive response).

输入输出样例

输入样例 #1

4
3
-1 0 1
5
1 -2 -2 1 -3
6
0 0 0 0 0 0
4
-1 2 -3 4

输出样例 #1

YES
NO
YES
NO

说明

In the first test case, there is only one triple where $ i=1 $ , $ j=2 $ , $ k=3 $ . In this case, $ a_1 + a_2 + a_3 = 0 $ , which is an element of the array ( $ a_2 = 0 $ ), so the array is 3SUM-closed. In the second test case, $ a_1 + a_4 + a_5 = -1 $ , which is not an element of the array. Therefore, the array is not 3SUM-closed. In the third test case, $ a_i + a_j + a_k = 0 $ for all distinct $ i $ , $ j $ , $ k $ , and $ 0 $ is an element of the array, so the array is 3SUM-closed.

Input

题意翻译

我们定义一个数组是 “3SUM-closed” 的,当且仅当对于任意满足 $1\le i<j<k\le n$ 的三个数 $(i,j,k)$,都存在有 $1\le l\le n$,使得 $a_i+a_j+a_k=a_l$。 现在给你 $T$ 个数组,对于每个数组,若它是“3SUM-closed”的,则输出 `YES`(大小写不敏感,下同);若不是,则输出 `NO`。 **【输入格式】** 第一行包含一个正整数 $T(1\le T\le1000)$,表示数据组数。 接下来每组第一行包含一个正整数 $n(3\le n\le2\times10^5)$,表示数组的长度。 每组第二行表示所给的数组 $a(-10^9\le a_i\le10^9)$。 **【输出格式】** 对于每组数据,若所给数组是“3SUM-closed”的,则输出 `YES`(大小写不敏感,下同);若不是,则输出 `NO`。 **【样例解释】** 对于第一组数据,当 $i=1,j=2,k=3$ 时,$a_1+a_2+a_3=0$,且 $a_2=0$,所以这个数组是“3SUM-closed”的。 对于第二组数据,$a_1+a_4+a_5=-1$,而数组中没有 $-1$,所以该数组不是“3SUM-closed”的。 对于第三组数据,对于每一个 $i,j,k$,都有 $a_i+a_j+a_k=0$,且 $0$ 存在于数组中,所以该数组是“3SUM-closed”的。

Output

**3SUM Closure**

**题意翻译**

定义一个数组是“3SUM-closed”的,如果对于任意三个不同的索引 $(i, j, k)$,它们的和 $a_i + a_j + a_k$ 是数组中的一个元素。更正式地说,对于所有整数 $1 \leq i < j < k \leq n$,存在一个整数 $1 \leq l \leq n$ 使得 $a_i + a_j + a_k = a_l$。给定一个数组,判断它是否是“3SUM-closed”的。

**输入格式**

第一行包含一个正整数 $T(1 \leq T \leq 1000)$,表示测试用例的数量。

每个测试用例的第一行包含一个整数 $n(3 \leq n \leq 2 \times 10^5)$,表示数组的长度。

每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($-10^9 \leq a_i \leq 10^9$),表示数组的元素。

保证所有测试用例的 $n$ 之和不超过 $2 \times 10^5$。

**输出格式**

对于每个测试用例,如果数组是“3SUM-closed”的,输出 `YES`;如果不是,输出 `NO`。

**样例解释**

在第一个测试用例中,只有一组 $(i=1, j=2, k=3)$。此时 $a_1 + a_2 + a_3 = 0$,0 是数组中的一个元素,所以这个数组是“3SUM-closed”的。

在第二个测试用例中,$a_1 + a_4 + a_5 = -1$,-1 不是数组中的一个元素,所以这个数组不是“3SUM-closed”的。

在第三个测试用例中,对于所有的 $i, j, k$,有 $a_i + a_j + a_k = 0$,0 是数组中的一个元素,所以这个数组是“3SUM-closed”的。**3SUM Closure** **题意翻译** 定义一个数组是“3SUM-closed”的,如果对于任意三个不同的索引 $(i, j, k)$,它们的和 $a_i + a_j + a_k$ 是数组中的一个元素。更正式地说,对于所有整数 $1 \leq i < j < k \leq n$,存在一个整数 $1 \leq l \leq n$ 使得 $a_i + a_j + a_k = a_l$。给定一个数组,判断它是否是“3SUM-closed”的。 **输入格式** 第一行包含一个正整数 $T(1 \leq T \leq 1000)$,表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n(3 \leq n \leq 2 \times 10^5)$,表示数组的长度。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($-10^9 \leq a_i \leq 10^9$),表示数组的元素。 保证所有测试用例的 $n$ 之和不超过 $2 \times 10^5$。 **输出格式** 对于每个测试用例,如果数组是“3SUM-closed”的,输出 `YES`;如果不是,输出 `NO`。 **样例解释** 在第一个测试用例中,只有一组 $(i=1, j=2, k=3)$。此时 $a_1 + a_2 + a_3 = 0$,0 是数组中的一个元素,所以这个数组是“3SUM-closed”的。 在第二个测试用例中,$a_1 + a_4 + a_5 = -1$,-1 不是数组中的一个元素,所以这个数组不是“3SUM-closed”的。 在第三个测试用例中,对于所有的 $i, j, k$,有 $a_i + a_j + a_k = 0$,0 是数组中的一个元素,所以这个数组是“3SUM-closed”的。

加入题单

上一题 下一题 算法标签: