atcoder#ARC128C. [ARC128C] Max Dot

[ARC128C] Max Dot

配点 : 600600

問題文

整数 N,M,SN,M,S,及び長さ NN の整数列 A=(A1,A2,,AN)A=(A_1,A_2,\cdots,A_N) が与えられます.

次の条件をすべて満たす長さ NN の非負実数x=(x1,x2,,xN)x=(x_1,x_2,\cdots,x_N) を作ることを考えます.

  • 0x1x2xNM0 \leq x_1 \leq x_2 \leq \cdots \leq x_N \leq M
  • 1iNxi=S\sum_{1 \leq i \leq N} x_i=S

ここで,xx のスコアを 1iNAi×xi\sum_{1 \leq i \leq N} A_i \times x_i と定義します. xx のスコアとしてありうる最大の値を求めてください.

制約

  • 1N50001 \leq N \leq 5000
  • 1M1061 \leq M \leq 10^6
  • 1Smin(N×M,106)1 \leq S \leq \min(N \times M,10^6)
  • 1Ai1061 \leq A_i \leq 10^6
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN MM SS

A1A_1 A2A_2 \cdots ANA_N

出力

答えを出力せよ. 絶対誤差または相対誤差が 10610^{-6} 以内であれば,正解と判定される.

3 2 3
1 2 3
8.00000000000000000000

x=(0,1,2)x=(0,1,2) とするのが最適です.

3 3 2
5 1 1
4.66666666666666666667

x=(2/3,2/3,2/3)x=(2/3,2/3,2/3) とするのが最適です.

10 234567 1000000
353239 53676 45485 617014 886590 423581 172670 928532 312338 981241
676780145098.25000000000000000000