結果
問題 | No.533 Mysterious Stairs |
ユーザー |
![]() |
提出日時 | 2017-08-17 01:55:00 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 174 ms / 5,000 ms |
コード長 | 767 bytes |
コンパイル時間 | 747 ms |
コンパイル使用メモリ | 103,108 KB |
実行使用メモリ | 67,100 KB |
最終ジャッジ日時 | 2024-06-12 21:34:53 |
合計ジャッジ時間 | 2,378 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 |
ソースコード
import std.algorithm;import std.array;import std.conv;import std.math;import std.range;import std.stdio;import std.string;import std.typecons;int readint() {return readln.chomp.to!int;}int[] readints() {return readln.split.map!(to!int).array;}void main() {const MOD = 1_000_000_007;int n = readint();auto dp = new long[][](n + 10, 3 + 1);dp[1][1] = dp[2][2] = dp[3][3] = 1;for (int i = 1; i < n; i++) {for (int j = 1; j <= 3; j++) {for (int k = 1; k <= 3; k++) {if (j == k)continue;dp[i + k][k] = (dp[i + k][k] + dp[i][j]) % MOD;}}}long ans = (dp[n][1] + dp[n][2] + dp[n][3]) % MOD;writeln(ans);}