T273353 [DILL AKOI R2 A] - dp problem

题目背景

# 若您使用 `cin`,请务必加上 `cin.tie(0)->sync_with_stdio(0);`。 注意:Subtask $0$ 为 $\texttt{\_hsh}$ 所造, Subtask $1$ 为 $\texttt{初雪\_matt}$ 所造的 hack 数据。 ------------ $\texttt{Time\_Complexity}$ 同学正在研究 $\text{TimeComplexity}$。 她拿到了一题: >给定一个正整数 $n$,和一个长度为 $n$ 的正整数序列。 > >你可以在数组中选择两个数,让任意一个数变成这两个数的和,这三个数下标不能相同,数组里的每个数都在 $[1, 5]$ 范围内。 > >判断在若干次操作以后,能不能使所有数都小于等于 $t$。 > >要求在 $O(2^n)$ 的复杂度完成。 $\texttt{Time\_Complexity}$:太简单了,我搜索一下,把全部情况枚举一遍就行了。 于是她又拿了道题: >给定一个正整数 $n$,和一个长度为 $n$ 的正整数序列。 > >你可以在数组中选择两个数,让任意一个数变成这两个数的和,这三个数下标不能相同,数组里的每个数都在 $[1, 10^9]$ 范围内。 > >判断在若干次操作以后,能不能使所有数都小于等于 $t$。 > >要求在 $O(n \log n)$ 的复杂度完成。 $\texttt{Time\_Complexity}$:太简单了,只要随便写就行了。 于是她又拿了道题: >给定一个正整数 $n$,和一个长度为 $n$ 的正整数序列。 > >你可以在数组中选择两个数,让任意一个数变成这两个数的和,这三个数下标不能相同,数组里的每个数都在 $[1, 10^9]$ 范围内。 > >判断在若干次操作以后,能不能使所有数都小于等于 $t$。 > >要求在 $O(n)$ 的复杂度完成。 $\texttt{Time\_Complexity}$:太简单了,只要$\cdots$ 完蛋了,她发现她不会。

题目描述

你需要帮她完成这道题: 给定一个正整数 $n$,和一个长度为 $n$ 的正整数序列。 你可以在数组中选择两个数,让任意一个数变成这两个数的和,这三个数下标不能相同。 判断在若干次操作以后,能不能使所有数都小于等于 $t$。

输入格式

第一行,一个正整数 $n$。 第二行,一个正整数 $t$。 第三行,$n$ 个正整数 $a_i$。

输出格式

若可以,输出 `Yes`,否则输出 `No`。

说明/提示

### 样例解释 #1 不用操作。 ### 样例解释 #2 - 将 $a_3$ 变成 $a_1 + a_2$,序列变成 $[{\color{blue}1}, {\color{blue} 1}, {\color{red} 2}, 5, 1, 4]$。 - 将 $a_4$ 变成 $a_1 + a_5$,序列变成 $[{\color{blue} 1}, 1, 2, {\color{red}2}, {\color{blue}1}, 4]$。 此时,符合要求。 ### 数据规模及约定 数据保证 $10\le n\le 10^6, 1\le t\le 10^9+7,1\le a_i\le 10^{9}$。 若您的代码复杂度正确但是 TLE,请尝试使用更快的读入方式。