結果

問題 No.250 atetubouのzetubou
ユーザー code-devo
提出日時 2016-03-04 21:52:01
言語 Ruby
(3.4.1)
結果
AC  
実行時間 1,188 ms / 5,000 ms
コード長 975 bytes
コンパイル時間 50 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 18,560 KB
最終ジャッジ日時 2024-12-26 06:03:35
合計ジャッジ時間 14,909 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 20
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

=begin
ループ変数の組み合わせの数は、combination(X + D - 1, D - 1)である。
組み合わせの場合の数がT以下かどうかを調べる。

解説)ループ変数の組み合わせの数の求め方。
まず、Xの数だけ"○"があると考える。(下図は、X=10の場合)

 ○○○○○○○○○○

ここに、D-1の数だけついたて"|"を入れる。(下図は、D=3の場合の一例)

 ○○○|○○○○○|○○

左からn番目の"○"のグループが、n番目のループのループ変数の値と考える。

よって、ループ変数の組み合わせの場合の数は、combination(X + D - 1, D - 1)。
=end

FACTORIAL = {}
FACTORIAL[0] = 1
for i in 1..3000 do
  FACTORIAL[i] = FACTORIAL[i-1] * i
end

gets
while line = gets do
  d, x, t = line.split.map(&:to_i)
  r = FACTORIAL[x + d - 1] / FACTORIAL[x] / FACTORIAL[d - 1] #combinationの計算
  puts r <= t ? "AC" : "ZETUBOU"
end
0