

Time Limit: 3 sec / Memory Limit: 1024 MB
配点 : 点
問題文
長さ の整数列 があります. 以降この問題では, の先頭 項の和を スコア と呼ぶことにします. また,入力で与えられた のスコアを と置くことにします.
あなたは,以下の操作を好きな回数繰り返すことができます.
- のある隣接する 要素を選び,それらの値を入れ替える.
あなたの目標は,スコアを 以上にすることです. 目標が達成可能であるかどうか判定し,また可能であるなら必要な最小の操作回数を求めてください.
制約
- 入力される値はすべて整数
入力
入力は以下の形式で標準入力から与えられる.
出力
目標が達成可能でない場合,-1
を出力せよ.
可能である場合,必要な最小の操作回数を出力せよ.
入力例 1Copy
4 2 2 1 1 2
出力例 1Copy
2
まず, です. 以下のように操作することで,スコアを 以上にすることができます.
- と の値を入れ替える と の値を入れ替える
回の操作では目標を達成できないため,必要な最小の操作回数は になります.
入力例 2Copy
3 1 3 2 1
出力例 2Copy
-1
入力例 3Copy
20 13 90699850 344821203 373822335 437633059 534203117 523743511 568996900 694866636 683864672 836230375 751240939 942020833 865334948 142779837 22252499 197049878 303376519 366683358 545670804 580980054
出力例 3Copy
13
Score : points
Problem Statement
We have an integer sequence of length : . Below in this problem, let the score of be the sum of the first terms of . Additionally, let be the score of the sequence given in input.
You can do the following operation any number of times.
- Choose two adjacent elements of and swap them.
Your objective is to make the score at least . Determine whether the objective is achievable. If it is, find the minimum number of operations needed to achieve it.
Constraints
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
Output
If the objective is not achievable, print -1
.
If it is achievable, print the minimum number of operations needed to achieve it.
Sample Input 1Copy
4 2 2 1 1 2
Sample Output 1Copy
2
We have . The following sequence of operations makes the score at least .
- swap and swap and
The objective is not achievable in one operation, so the minimum number of operations needed is .
Sample Input 2Copy
3 1 3 2 1
Sample Output 2Copy
-1
Sample Input 3Copy
20 13 90699850 344821203 373822335 437633059 534203117 523743511 568996900 694866636 683864672 836230375 751240939 942020833 865334948 142779837 22252499 197049878 303376519 366683358 545670804 580980054
Sample Output 3Copy
13