結果
問題 |
No.498 ワープクリスタル (給料日編)
|
ユーザー |
![]() |
提出日時 | 2017-03-26 19:34:23 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 800 bytes |
コンパイル時間 | 133 ms |
コンパイル使用メモリ | 82,568 KB |
実行使用メモリ | 83,064 KB |
最終ジャッジ日時 | 2024-07-06 06:32:37 |
合計ジャッジ時間 | 3,795 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 WA * 1 |
other | TLE * 1 -- * 20 |
ソースコード
import itertools import math import operator import functools Gx,Gy,K = map(int,input().split()) A = [] for k in range(K): x,y,N = map(int,input().split()) A.append([x,y,N]) B = [] for k,a in enumerate(A): b = [tuple(a[:-1] + [k]) for i in range(a[2])] B = B + b if Gx == Gy == 0: sumP = 1 else: sumP = 0 for i in range(1,len(B) + 1): C = set(itertools.combinations(B,i)) C = list(C) for k in range(len(C)): s = set([C[k][j][2] for j in range(i)]) Cx = sum([C[k][j][0] for j in range(i)]) Cy = sum([C[k][j][1] for j in range(i)]) if Cx == Gx and Cy == Gy: d = [] for s2 in s: d.append([C[k][j][2] for j in range(i)].count(s2)) p = math.factorial(i) // functools.reduce(operator.mul,([math.factorial(d[j]) for j in range(len(d))])) sumP = (sumP + p) % 1000000007 print(sumP)