結果

問題 No.108 トリプルカードコンプ
ユーザー Navier_Boltzmann
提出日時 2023-06-16 09:06:55
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 627 ms / 5,000 ms
コード長 677 bytes
コンパイル時間 312 ms
コンパイル使用メモリ 82,708 KB
実行使用メモリ 141,436 KB
最終ジャッジ日時 2024-06-24 03:45:54
合計ジャッジ時間 4,595 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 20
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

from collections import *
from itertools import *
from functools import *
from heapq import *
import sys,math
input = sys.stdin.readline
N = int(input())
A = list(map(int,input().split()))
X = [0]*4
for a in A:
m = min(a,3)
X[m] += 1
mem = defaultdict(lambda:-1)
mem[(0,0,0,N)]=0
def f(X):
if mem[X]!=-1:
return mem[X]
Z = list(X)
tmp = 0
for i in range(3):
if Z[i]==0:
continue
Z[i+1] += 1
Z[i] -= 1
tmp += (Z[i]+1)*(1 + f(tuple(Z)))
Z[i+1] -= 1
Z[i] += 1
tmp += Z[3]
tmp /= (N-Z[3])
mem[tuple(X)] = tmp
return tmp
print(f(tuple(X)))
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0