問題一覧 > 通常問題

No.553 AlphaCoder Rating

レベル : / 実行時間制限 : 1ケース 1.500秒 / メモリ制限 : 256 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 120
作問者 : cielciel / テスター : maimai
1 ProblemId : 1778 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2017-11-06 18:21:30

問題文

AlphaCoderでは、ユーザーのコンテストパフォーマンスからレーティングが算出される。
新しいパフォーマンスから順にRPerf1...RPerfN(今までN回パフォーマンスが算出されているとする)とすると、レーティングは以下のようになる。

$ F(n)=\dfrac{\sqrt{\sum_{i=1}^{n}0.81^i}}{\sum_{i=1}^{n}0.9^i} $
$ f(n)=\dfrac{F(n)-F(\infty)}{F(1)-F(\infty)} \times 1200 $
$ g(X)=2.0^\tfrac{X}{800} $
$ Rating_n = g^{-1} (\dfrac{\sum_{i=1}^n g(RPerf_i) \times 0.9^i}{\sum_{i=1}^n 0.9^i}) - f(n) $
なおg^-1はgの逆関数を表すとする
(追記:y=(xの式)をxについて解いてxとyを入れ替えると逆関数になります。が、これを追記したのはコンテスト後なので、この追記による難易度変更は行いません)。
参加回数NとパフォーマンスRPerf1...RPerfNを与えるので、レーティングを整数で算出せよ。±1の絶対誤差が認められる。

入力

N
RPerf1
...
RPerfN

1行目:参加回数(1≤N≤100)
2〜N-1行目:RPerfi(1≤i≤N)

制約:
1000≤RPerfi≤4000
なお、Ratingiが負になることはないものとします
(このため、ランダムケースにおいては1500≤RPerfiが保証されます)

出力

RatingNを1行で出力して下さい。

サンプル

サンプル1
入力
1
2000
出力
800

パフォーマンス平均は2000で、f(1)=1200のため、レーティングは800になります。

サンプル2
入力
2
2000
2000
出力
1255

f(2)=745.4です。

サンプル3
入力
3
1500
2000
2500
出力
1492

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。