結果
| 問題 |
No.533 Mysterious Stairs
|
| コンテスト | |
| ユーザー |
norioc
|
| 提出日時 | 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);
}
norioc