結果
| 問題 |
No.533 Mysterious Stairs
|
| コンテスト | |
| ユーザー |
phage64
|
| 提出日時 | 2017-11-18 00:48:37 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
AC
|
| 実行時間 | 149 ms / 5,000 ms |
| コード長 | 1,747 bytes |
| コンパイル時間 | 1,729 ms |
| コンパイル使用メモリ | 113,680 KB |
| 実行使用メモリ | 46,476 KB |
| 最終ジャッジ日時 | 2024-11-25 08:55:38 |
| 合計ジャッジ時間 | 3,220 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 28 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;
using System.IO;
class Program
{
static void Solve()
{
int n = sc.Int();
long[,] dp = new long[3, n + 5];
for (int i = 1; i <= 3; i++)
dp[i-1, i] = 1;
for (int i = 1; i < n; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
if (j != k)
dp[k, i + k + 1] += dp[j, i] % MOD;
long ans = 0;
for (int i = 0; i < 3; i++)
ans += dp[i, n];
ans %= MOD;
pr.WriteLine(ans);
}
static void Main(string[] args)
{
Solve();
pr.Flush();
}
static Scanner sc = new Scanner();
static Printer pr = new Printer();
static readonly int MOD = 1000000007;
}
#region IO
class Scanner
{
private int _i = 0;
private string[] line = new string[0];
private T[] Enumerate<T>(int n, Func<T> f)
{
T[] ret = new T[n];
for (int i = 0; i < n; i++)
ret[i] = f();
return ret;
}
public string String()
{
if (line.Length <= _i)
{
line = Console.ReadLine().Split(' ');
_i = 0;
}
return line[_i++];
}
public int Int() => int.Parse(String());
public long Long() => long.Parse(String());
public double Double() => double.Parse(String());
public int[] Int(int n) => Enumerate(n, Int);
public long[] Long(int n) => Enumerate(n, Long);
public double[] Double(int n) => Enumerate(n, Double);
public string[] String(int n) => Enumerate(n, String);
}
class Printer : StreamWriter
{
public Printer() : base(Console.OpenStandardOutput())
{
AutoFlush = false;
}
}
#endregion
phage64