結果
問題 | No.1011 Infinite Stairs |
ユーザー |
|
提出日時 | 2021-04-12 21:12:51 |
言語 | Kuin (KuinC++ v.2021.9.17) |
結果 |
AC
|
実行時間 | 1,421 ms / 2,000 ms |
コード長 | 610 bytes |
コンパイル時間 | 7,416 ms |
コンパイル使用メモリ | 147,444 KB |
実行使用メモリ | 216,320 KB |
最終ジャッジ日時 | 2024-07-17 12:17:57 |
合計ジャッジ時間 | 9,400 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
func main() const mod: int :: 1000000007 var n: int :: cui@inputInt() var d: int :: cui@inputInt() var k: int :: cui@inputInt() ; dp[i][j] = val ; i: 移動した回数 ; j: 昇ったステップ ; val: 通り数 var dp: [][]int :: #[n + 1, k + 1]int do dp[0][0] :: 1 var cum: []int :: #[k + 1]int for i(1, n) for j(1, k) do cum[j] :: cum[j - 1] + dp[i - 1][j - 1] ; 「dp[i - 1][[j - d, 0].max()] ~ dp[i - 1][j - 1]」までの和。 do dp[i][j] :: cum[j] - cum[[j - d, 0].max()] do dp[i][j] :% mod end for end for var ans: int :: dp[n][k] do cui@print("\{ans}\n") end func