結果
問題 | No.108 トリプルカードコンプ |
ユーザー |
![]() |
提出日時 | 2017-08-24 08:12:34 |
言語 | Nim (2.2.0) |
結果 |
AC
|
実行時間 | 12 ms / 5,000 ms |
コード長 | 740 bytes |
コンパイル時間 | 2,859 ms |
コンパイル使用メモリ | 65,512 KB |
実行使用メモリ | 7,680 KB |
最終ジャッジ日時 | 2024-06-30 02:59:55 |
合計ジャッジ時間 | 3,666 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 26) Warning: imported and not used: 'math' [UnusedImport]
ソースコード
import sequtils,strutils,math var N = stdin.readline.parseInt A = stdin.readline.split.map(parseInt) ans : float = 0 P : array[101, array[101, array[101, float]]] c : array[3, int] P[0][0][1] = N.float proc solve(a, b, c : int) : float = var k = N - a - b - c if k == N: return 0 if P[a][b][c] > 0: return P[a][b][c] if a > 0: result += solve(a - 1, b + 1, c) * (a / (a + b + c)) if b > 0: result += solve(a, b - 1, c + 1) * (b / (a + b + c)) if c > 0: result += solve(a, b, c - 1) * (c / (a + b + c)) result += N / (a + b + c) P[a][b][c] = result for a in A: if a > 2: continue c[a] += 1 ans = solve(c[0], c[1], c[2]) echo ans