結果
| 問題 | No.108 トリプルカードコンプ |
| コンテスト | |
| ユーザー |
6soukiti29
|
| 提出日時 | 2017-08-24 08:12:34 |
| 言語 | Nim (2.2.6) |
| 結果 |
AC
|
| 実行時間 | 8 ms / 5,000 ms |
| コード長 | 740 bytes |
| 記録 | |
| コンパイル時間 | 2,743 ms |
| コンパイル使用メモリ | 68,508 KB |
| 実行使用メモリ | 8,192 KB |
| 最終ジャッジ日時 | 2026-03-19 20:19:46 |
| 合計ジャッジ時間 | 3,503 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 |
ソースコード
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
6soukiti29