编程题
### 问题描述
小蓝是一位宇宙探险家。他发明了一对智能机器人,它们能够分析宇宙中各种稀有矿石的属性。
为了进一步检验机器人的能力,小蓝决定进行一项实验。
首先,小蓝会将 $n$ 颗矿石样本在桌上摆放成一排,每颗矿石都具有一个属性值 $a_i$。
接着,小蓝会给这对机器人分别输入一个数字 $X$。一旦机器人找到一颗属性值为 $X$ 的矿石,它就会立即拿起这颗矿石并返回给小蓝。如果找不到属性值为 $X$ 的矿石,机器人将空手而归。
小蓝可以在桌子的任意一端放置机器人,也就是说,他可以选择在桌子的左端放置两个机器人、在桌子的右端放置两个机器人,或者在左右两端各放置一个机器人。放置完后,机器人会同时开始工作,并按照从左往右或从右往左的顺序依次分析矿石样本的属性值。
机器人每分析一颗矿石需要 $1$ 分钟的时间。但机器人可以快速移动,因此移动的时间可以忽略不计。
小蓝想要知道,他需要等待多久才能从机器人那里得到两颗属性值不同,且和为 $K$ 的矿石。请帮助他计算出最短的等待时间(以分钟为单位)。
### 输入格式
第一行包含两个整数 $n$($2\leq n\leq 2\times 10^5$) 和 $K$($2\leq K \leq 10^9$),分别表示矿石样本的数量和目标属性之和。
接下来的一行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 10^9$),表示每颗矿石的属性值。
### 输出格式
输出一个整数,表示小蓝从机器人那里得到两颗属性之和为 $K$ 的矿石的最短等待时间(以分钟为单位)。如果无法得到两颗属性值之和为 $K$ 的矿石,则输出 $-1$。
### 样例输入1
```text
5 7
1 3 5 2 4
```
### 样例输出1
```text
2
```
### 样例输入2
```text
4 10
6 3 8 5
```
### 样例输出2
```text
-1
```
### 样例说明
在样例 $1$ 中,小蓝可以将两个机器人分别放置在矿石样本的两端,第一个机器人从左往右分析矿石,第二个机器人从右往左分析矿石。然后,分别向第一个机器人输入数字 $3$,第二个机器人输入数字 $4$。第一个机器人需要 $2$ 分钟找到特性值为 $3$ 的矿石,第二个机器人需要 $1$ 分钟找到特性值为 $4$ 的矿石,因此最短等待时间为 $2$ 分钟。
在样例 $2$ 中,无论小蓝如何放置机器人,都无法得到两颗属性值之和为 $10$ 的矿石,因此输出为 $-1$。