結果
問題 | No.314 ケンケンパ |
ユーザー |
![]() |
提出日時 | 2024-10-13 00:06:08 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 93 ms / 1,000 ms |
コード長 | 1,972 bytes |
コンパイル時間 | 1,992 ms |
コンパイル使用メモリ | 105,600 KB |
実行使用メモリ | 21,888 KB |
最終ジャッジ日時 | 2024-10-13 00:06:13 |
合計ジャッジ時間 | 2,292 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;using System.Collections.Generic;class Program{static string InputPattern = "InputX";static List<string> GetInputList(){var WillReturn = new List<string>();if (InputPattern == "Input1") {WillReturn.Add("3");//2//「ケンケンパ」と「ケンパケン」の2通りがありえます}else if (InputPattern == "Input2") {WillReturn.Add("4");//3//「ケンケンパケン」と「ケンパケンパ」と「ケンパケンケン」//の3通りがありえます。}else if (InputPattern == "Input3") {WillReturn.Add("100");//831891005}else {string wkStr;while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);}return WillReturn;}static void Main(){const long Hou = 1000000007;List<string> InputList = GetInputList();int N = int.Parse(InputList[0]);//場合の数[連続したケンの数]なDP表int UB = 2;long[] PrevDP = new long[UB + 1];PrevDP[0] = 1;for (int I = 1; I <= N; I++) {long[] CurrDP = new long[UB + 1];for (int J = 0; J <= UB; J++) {if (PrevDP[J] == 0) continue;//パにする場合if (J > 0) {CurrDP[0] += PrevDP[J];CurrDP[0] %= Hou;}//ケンを続ける場合if (J < 2) {CurrDP[J + 1] += PrevDP[J];CurrDP[0] %= Hou;}}PrevDP = CurrDP;}long Answer = 0;foreach (long EachLong in PrevDP) {Answer += EachLong;Answer %= Hou;}Console.WriteLine(Answer);}}