atcoder#AGC048C. [AGC048C] Penguin Skating
[AGC048C] Penguin Skating
题目描述
個のマスが横一列に並んでいます. マスは左から順に と番号が振られています.
匹のペンギンがマス目の上にいます. ペンギンは左から順に と番号が振られています. 最初,ペンギン はマス の上にいます. ここで, です.
あなたは,次の操作を好きな回数行うことができます.
- ペンギンを 匹選び,左または右へ向かって滑らせる. ペンギンは,目の前に空マスがある限り滑り続ける. 別のペンギンのいるマスの直前のマスに到達する,もしくは目の前にマスが存在しなくなったら,ペンギンは停止する.
例えば, で,ペンギンのいるマスが であるとします. このとき,ペンギン を右に滑らせると,ペンギン はマス まで移動します. また,ペンギン を右に滑らせると,ペンギン はマス まで移動します.
あなたの目標は,すべての について,ペンギン がマス の上にいるようにすることです. ここで, です. 目標が達成可能か判定し,可能ならば必要な操作回数の最小値を求めてください.
输入格式
入力は以下の形式で標準入力から与えられる.
输出格式
目標が達成不可能な場合は を,可能な場合は必要な操作回数の最小値を出力せよ.
题目大意
有 个格子排成一排编号从 到 。格子上有 只企鹅,第 只所在的格子为 ,满足 。定义一次操作为选一只企鹅,将其往左或往右移动直到不能移动为止,其中不能移动指的是所在的格子为 或 ,或者下一个格子上有企鹅。现给出位置集合 ,问至少经过多少次操作才能使企鹅所在的格子组成的集合与 相等,或者输出 表示无解。
4 11
3 4 6 10
1 5 6 11
3
1 3
1
2
-1
10 1000000000
65110170 68805223 123016442 275946481 661490312 760727752 764540566 929355340 930658577 947099792
1 2 123016442 661490311 929355337 930658574 999999997 999999998 999999999 1000000000
13
提示
制約
- 入力される数はすべて整数.
Sample Explanation 1
次のように操作すればよいです. - ペンギン を左に滑らせる.ペンギンの位置は, になる. - ペンギン を右に滑らせる.ペンギンの位置は, になる. - ペンギン を右に滑らせる.ペンギンの位置は, になる.