結果

問題 No.498 ワープクリスタル (給料日編)
ユーザー ciel
提出日時 2017-04-24 00:31:41
言語 Ruby
(3.4.1)
結果
AC  
実行時間 464 ms / 2,000 ms
コード長 383 bytes
コンパイル時間 303 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 12,800 KB
最終ジャッジ日時 2024-07-22 10:19:04
合計ジャッジ時間 8,002 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 21
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

M=10**9+7;I=[1,1];*F=I;*R=I
2.upto(99){|i|I<<z=(M-M/i)*I[M%i]%M;F<<i*F[-1]%M;R<<z*R[-1]%M}
def dfs(x,y,a)
	r=x!=W||y!=H||(!a.empty?&&a[-1]==0) ? 0 : F[a.reduce(0,:+)]*a.map{|e|R[e]}.reduce(1,:*)%M
	if a.size<A.size
		dx,dy,n=A[a.size]
		(0..n).each{|i|
			r=(r+dfs(x+dx*i,y+dy*i,a+[i]))%M
		}
	end
	r
end
W,H,K=gets.split.map &:to_i
A=K.times.map{gets.split.map &:to_i}
p dfs(0,0,[])
0