I - 逆転条件
問題文
とここちゃんは友だちと $4$ 人でゲームをしています。
$4$ 人にはそれぞれ $1$ から $4$ の相異なる番号がつけられており、とここちゃんの番号は $X$ です。番号が $i$ の人の現在の点数は $A_i$ 点です。
とここちゃんは好きな非負整数 $S$ を選び、自分以外の $3$ 人からそれぞれ $S$ 点を奪い、さらに番号が $Y$ の人から $S$ 点追加で奪います。これにより、とここちゃんの点数は $4S$ 点増え、番号が $Y$ の人の点数は $2S$ 点減り、残りの $2$ 人の点数はそれぞれ $S$ 点減ります。
その後、点数が大きい順に順位をつけます。ただし、点数が等しい人の間では番号が小さい人がより上位になるものとします。
とここちゃんがちょうど $R$ 位になるような非負整数 $S$ が存在するか判定してください。もし存在するならば、そのような $S$ のうち最小のものを求めてください。
$T$ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
制約
- $1 \le T \le 30{,}000$
- $X \in \lbrace 1, 2, 3, 4 \rbrace$
- $Y \in \lbrace 1, 2, 3, 4 \rbrace \setminus {X}$
- $R \in \lbrace 1, 2, 3, 4 \rbrace$
- $-10^{18} \le A_i \le 10^{18}$
- 入力は全て整数
部分点
この問題に部分点は存在しません。
入力
入力は以下の形式で標準入力から与えられます。
$T$
$\mathrm{case}_1$
$\vdots$
$\mathrm{case}_T$
各テストケースは以下の形式で与えられます。
$X\ \ Y\ \ R$
$A_1\ \ A_2\ \ A_3\ \ A_4$
出力
標準出力に $T$ 行出力してください。
$i$ 行目には、$\mathrm{case}_i$ に対する答えを以下の説明に従って出力してください。
とここちゃんがちょうど $R$ 位になるような非負整数 $S$ が存在する場合、そのような $S$ の中で最小のものを出力してください。存在しない場合、-1
を出力してください。
4
1 4 1
800 1000 2000 4000
1 4 2
800 1000 2000 4000
1 4 3
800 1000 2000 4000
1 4 4
800 1000 2000 4000
534
240
40
0
$\mathrm{case}_1$ について、$S = 534$ のとき、$4$ 人の点数はそれぞれ以下のように変化します。
- 番号が $1$ の人の点数: $800+534×4=2936$
- 番号が $2$ の人の点数: $1000-534=466$
- 番号が $3$ の人の点数: $2000-534=1466$
- 番号が $4$ の人の点数: $4000-534×2=2932$
よって、番号が $1$ であるとここちゃんは $1$ 位になります。また、とここちゃんが $1$ 位を達成する $534$ 未満の $S$ は存在しないため、$1$ 行目には 534
を出力します。
8
3 2 1
25000 25000 25000 25000
3 2 2
25000 25000 25000 25000
3 2 3
25000 25000 25000 25000
3 2 4
25000 25000 25000 25000
2 4 1
17000 12000 21000 60000
2 4 2
17000 12000 21000 60000
2 4 3
17000 12000 21000 60000
2 4 4
17000 12000 21000 60000
1
-1
0
-1
8000
1800
1001
0