5088.四散而逃

时间限制:1s 内存限制:256MB

有一个由n个格子排成一行的走廊,边缘的格子为走廊的尽头(即$1$号格子和$n$号格子), 起初每个格子上都有$a_i$个人。每次奔逃操作会使得同一个格子的两个人,向两侧奔逃到某个格子停下。即每次操作会选择三个下标$i,j,k$, 其中$1 \le i\lt j \lt k \le n$ ,并且$a_j \ge 2$ , 从$j$号格子中选择两个人分别逃到$i$号格子和$k$号格子。

问最少需要多少次奔逃才能够让所有人都到达$1$号格子或者$n$号格子。若无论多少次操作都做不到,就输出-1

注:应该说是二散而逃才对(o´罒`o)

输入格式(从终端/标准输入读取)

第一行输入一个整数$n,(3 \le n \le 2*10^5)$。

第二行输入$n$个整数$a_1,a_2,...,a_n$ ,$(1\le a_i \le 10^9)$。

输出格式(输出至终端/标准输出)

输出一个整数,表示需要最少的次数,或者-1

输入样例1

复制
5
1 2 2 3 6
 \n
 · · · · \n

输出样例1

复制
4
 \n

输入样例2

复制
3
1 3 1
 \n
 · · \n

输出样例2

复制
-1
  \n
来源: 河南萌新联赛2024第(六)场

提交题解

Please login first.

© 2025 FAQs