该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
一分为二
题目描述
给定一个长度为 n 的序列 a,现在你需要执行恰好一次操作:
- 选择一个索引 i (1≦i≦n),满足 ai≧2,然后你可以选择任意的两个正整数 x,y,但是需要满足 x+y=ai;再将 ai 从序列中删除,将 x 和 y 添加到序列 a 中,此时序列 a 的长度将变为 n+1。
现在问你是否能够通过恰好一次操作使得序列 a 变为一个长度为 n+1 的排列。
排列:长度为 n 的序列是一个排列,当且仅当 1 到 n 里面的每个数都恰好出现一次。
例如:序列 [2,3,4,1] 便是一个排列,而序列 [1,3,4] 则不是一个排列。
输入格式
输入一个整数 n (2≦n≦2×105),表示序列 a 的长度大小。
第二行输入 n 个整数 ai (0≦ai≦109)。
数据保证序列中至少存在一个 i (1≦i≦n),满足 ai≧2。
输出格式
如果能够通过恰好一次操作使得序列 a 变为一个长度为 n+1 的排列,则输出 YES;否则输出 NO。
输入输出样例 #1
输入 #1
5
1 2 9 4 5
输出 #1
YES
可以选择 9,拆分为 x=3,y=6,序列 a 将变为 [1,2,3,4,5,6]。
输入输出样例 #2
输入 #2
5
1 5 4 3 2
输出 #2
NO
无法找到一个数使得序列 a 变为长度为 n+1 的排列。
输入输出样例 #3
输入 #3
5
6 3 3 4 5
输出 #3
YES
可以选择 3,拆分为 x=1,y=2,序列 a 将变为 [1,2,3,4,5,6]。
数据范围与子任务
| 子任务 |
分值 |
数据范围 |
| 1~3 |
5 |
3≦n≦2×105,序列中存在某个数至少出现三次。 |
| 4~6 |
∑i=1nai=2(n+2)×(n+1)。 |
| 7~15 |
20 |
2≦n≦300,(maxi=1nai)≦300 |
| 16~25 |
30 |
2≦n≦5000 |
| 26~40 |
40 |
数据范围与题目一样 |