B. 徐老师的一分为二

    传统题 1000ms 256MiB

徐老师的一分为二

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

一分为二


题目描述

给定一个长度为 nn 的序列 aa,现在你需要执行恰好一次操作:

  • 选择一个索引 ii (1in)(1\leqq i\leqq n),满足 ai2a_i\geqq 2,然后你可以选择任意的两个正整数 x,yx,y,但是需要满足 x+y=aix+y=a_i;再将 aia_i 从序列中删除,将 xxyy 添加到序列 aa 中,此时序列 aa 的长度将变为 n+1n+1

现在问你是否能够通过恰好一次操作使得序列 aa 变为一个长度为 n+1n+1 的排列。

排列:长度为 nn 的序列是一个排列,当且仅当 11nn 里面的每个数都恰好出现一次

例如:序列 [2,3,4,1][2,3,4,1] 便是一个排列,而序列 [1,3,4][1,3,4] 则不是一个排列。


输入格式

输入一个整数 nn (2n2×105)(2\leqq n\leqq 2\times 10^5),表示序列 aa 的长度大小。

第二行输入 nn 个整数 aia_i (0ai109)(0\leqq a_i\leqq 10^9)

数据保证序列中至少存在一个 ii (1in)(1\leqq i\leqq n),满足 ai2a_i\geqq 2


输出格式

如果能够通过恰好一次操作使得序列 aa 变为一个长度为 n+1n+1 的排列,则输出 YES;否则输出 NO


输入输出样例 #1

输入 #1

5
1 2 9 4 5

输出 #1

YES

可以选择 99,拆分为 x=3,y=6x=3,y=6,序列 aa 将变为 [1,2,3,4,5,6][1,2,3,4,5,6]

输入输出样例 #2

输入 #2

5
1 5 4 3 2

输出 #2

NO

无法找到一个数使得序列 aa 变为长度为 n+1n+1 的排列。

输入输出样例 #3

输入 #3

5
6 3 3 4 5

输出 #3

YES

可以选择 33,拆分为 x=1,y=2x=1,y=2,序列 aa 将变为 [1,2,3,4,5,6][1,2,3,4,5,6]


数据范围与子任务

子任务 分值 数据范围
11~33 55 3n2×1053\leqq n\leqq 2\times 10^5,序列中存在某个数至少出现三次。
44~66 i=1nai(n+2)×(n+1)2\sum_{i=1}^{n}a_i\ne \frac{(n+2)\times (n+1)}{2}
77~1515 2020 2n300,(maxi=1nai)3002\leqq n\leqq 300,(\max_{i=1}^{n}a_i)\leqq 300
1616~2525 3030 2n50002\leqq n\leqq 5000
2626~4040 4040 数据范围与题目一样

【睿爸信奥】入门组算法周赛(20260118)

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-1-17 7:00
结束于
2026-1-23 23:00
持续时间
3.5 小时
主持人
参赛人数
20