結果
| 問題 |
No.498 ワープクリスタル (給料日編)
|
| コンテスト | |
| ユーザー |
Tawara
|
| 提出日時 | 2016-07-14 20:26:55 |
| 言語 | PyPy2 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 496 ms / 2,000 ms |
| コード長 | 1,503 bytes |
| コンパイル時間 | 2,089 ms |
| コンパイル使用メモリ | 76,816 KB |
| 実行使用メモリ | 79,140 KB |
| 最終ジャッジ日時 | 2024-10-15 20:02:43 |
| 合計ジャッジ時間 | 9,934 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 21 |
ソースコード
R = xrange
def solve():
p = 10**9+7
Comb = [[0]*76 for i in R(76)]
Comb[0][0] = 1
cx = [0]*5; cy = [0]*5; cN = [0]*5; use = [0]*5
Gx,Gy,K = map(int,raw_input().split())
assert -10**5 <= Gx <= 10**5
assert -10**5 <= Gy <= 10**5
assert 1 <= K <= 5
check_set = set()
for i in R(K):
cx[i],cy[i],cN[i] = map(int,raw_input().split())
assert -10**4 <= cx[i] <= 10**4
assert -10**4 <= cy[i] <= 10**4
assert 1 <= cN[i] <= 15
assert (cx[i],cy[i]) not in check_set
check_set.add((cx[i],cy[i]))
for i in R(K*15):
for j in R(i+2):
Comb[i+1][j] = (Comb[i][j] + (Comb[i][j-1] if j > 0 else 0)) % p
ans = 0
for i in R(cN[0]+1):
use[0] = i
for j in R(cN[1]+1):
use[1] = j
for k in R(cN[2]+1):
use[2] = k
for l in R(cN[3]+1):
use[3] = l
for m in R(cN[4]+1):
use[4] = m
x =sum(cx[n]*use[n] for n in R(5))
y =sum(cy[n]*use[n] for n in R(5))
if Gx != x or Gy != y:
continue
total = sum(use)
cnt = 1
for n in xrange(5):
cnt = cnt * Comb[total][use[n]] % p
total -= use[n]
ans = (ans + cnt) % p
print ans
solve()
Tawara