问题 5663 --两数之和

5663: 两数之和

题目描述

给定 $n$ 个整数 $a_1,a_2,\cdots,a_n$,并且保证 $a_1< a_2<\cdots< a_n$,再给定一个目标值 $t$,请判断是否能从数列中挑出两个不同的数 $a_i$ 与 $a_j$,使得 $a_i+a_j=t$。

输入

第一行:单个整数 $n$; 第二行:$n$ 个整数 $a_1,a_2,\cdots,a_n$; 第三行:单个整数 $t$。

输出

+ 如果存在一种组合满足要求,输出 `Yes`; + 否则,输出 `No`。

样例输入输出

输入#1 复制
4
1 3 5 7
8
输出#1 复制
Yes
输入#2 复制
4
2 4 6 8
11
输出#2 复制
No
输入#3 复制
3
1 2 5
2
输出#3 复制
No

提示

+ 对于 $30\%$ 的数据,$1\leq n\leq 3000$; + 对于 $60\%$ 的数据,$1\leq n\leq 100,000$; + 对于 $100\%$ 的数据,$1\leq n\leq 1,000,000$; + $-1,000,000,000\leq a_i\leq 1,000,000,000$; + $-2,000,000,000\leq t \leq 2,000,000,000$。 样例1说明:8=3+5 样例3说明:1+1不是一个符合条件的解法,因为输入数据里只有一个1; 单个2也不能算一个符合条件的解法,因为不配对
序号 标题 作者 发表时间 费用 订购数 操作