Hatena::Grouptopcoder

cafelier@SRM

cafelier のSRM参加記録です。コンテスト中に考えてたことを執拗に全部書き残すとどうなるだろうかという試み本番中にこういうコードが書きたかったなあ、という後で書いた反省コードを書き残す試み

スパムが来たのでしばらくコメント欄をはてなユーザ限定にしています、すみません、

 | 

2012-05-06

GCJ12 Round1B A

11:50 | はてなブックマーク - GCJ12 Round1B A - cafelier@SRM

Dで。普通。

#!/usr/bin/rdmd
import std.algorithm;
import std.array;
import std.conv;
import std.stdio;
import std.string;

void solve(real[] S)
{
   const X = S.reduce!"a+b";

   foreach(J; S)
   {
      real L = 0, R = 1;
      foreach(_; 0..1000)
      {
         real Y = (L+R)/2;
         real myScore = J + X*Y;

         real beatMe = 0.0;
         foreach(JJ; S)
            beatMe += max(0.0, (myScore-JJ)/X);
         (beatMe <= 1 ? L : R) = Y;
      }
      writef(" %.09f", L*100);
   }
}

void main()
{
   const T = readln.chomp.to!int;
   foreach(t; 0..T)
   {
      writef("Case #%d:", t+1);
      solve(readln.split.map!(to!real).array[1..$]);
      writeln();
   }
}
トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/cafelier/20120506
 | 

presented by cafelier/k.inaba under CC0