結果

問題 No.662 スロットマシーン
ユーザー te-shte-sh
提出日時 2018-04-05 15:21:25
言語 D
(dmd 2.107.1)
結果
AC  
実行時間 5 ms / 2,000 ms
コード長 1,089 bytes
コンパイル時間 2,014 ms
コンパイル使用メモリ 153,884 KB
実行使用メモリ 5,240 KB
最終ジャッジ日時 2023-09-03 19:13:18
合計ジャッジ時間 3,166 ms
ジャッジサーバーID
(参考情報)
judge11 / judge13
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,380 KB
testcase_01 AC 1 ms
4,376 KB
testcase_02 AC 1 ms
4,380 KB
testcase_03 AC 2 ms
4,380 KB
testcase_04 AC 2 ms
4,376 KB
testcase_05 AC 1 ms
4,376 KB
testcase_06 AC 2 ms
4,380 KB
testcase_07 AC 2 ms
4,376 KB
testcase_08 AC 4 ms
4,376 KB
testcase_09 AC 5 ms
4,376 KB
testcase_10 AC 5 ms
4,380 KB
testcase_11 AC 5 ms
4,380 KB
testcase_12 AC 5 ms
4,384 KB
testcase_13 AC 5 ms
5,240 KB
testcase_14 AC 5 ms
4,376 KB
testcase_15 AC 5 ms
4,380 KB
testcase_16 AC 1 ms
4,380 KB
testcase_17 AC 5 ms
4,380 KB
testcase_18 AC 5 ms
4,380 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import std.algorithm, std.conv, std.range, std.stdio, std.string;

void readV(T...)(ref T t){auto r=readln.splitter;foreach(ref v;t){v=r.front.to!(typeof(v));r.popFront;}}
void readA(T)(size_t n,ref T t){t=new T(n);auto r=readln.splitter;foreach(ref v;t){v=r.front.to!(ElementType!T);r.popFront;}}
void readM(T...)(size_t n,ref T t){foreach(ref v;t)v=new typeof(v)(n);foreach(i;0..n){auto r=readln.splitter;foreach(ref v;t){v[i]=r.front.to!(ElementType!(typeof(v)));r.popFront;}}}
void readS(T)(size_t n,ref T t){t=new T(n);foreach(ref v;t){auto r=readln.splitter;foreach(ref j;v.tupleof){j=r.front.to!(typeof(j));r.popFront;}}}

void main()
{
  int m = 5, k = 3;
  string[] s; int[] c; readM(m, s, c);
  auto n = new long[](k), a = new string[][](k);
  foreach (i; 0..k) {
    readV(n[i]);
    readM(n[i], a[i]);
  }

  auto u = new long[](m);
  foreach (i; 0..m) {
    auto t = a.map!(ai => ai.count(s[i]));
    u[i] = t.fold!"a*b";
  }
  u[] *= 5;

  auto v = 0.0L;
  foreach (i; 0..m) v += c[i].to!real * u[i];

  writefln("%.2f", v/n.fold!"a*b");
  foreach (i; 0..m) writeln(u[i]);
}
0