結果
問題 |
No.554 recurrence formula
|
ユーザー |
![]() |
提出日時 | 2018-09-11 10:59:06 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,277 bytes |
コンパイル時間 | 2,174 ms |
コンパイル使用メモリ | 111,480 KB |
実行使用メモリ | 34,788 KB |
最終ジャッジ日時 | 2024-06-23 04:07:00 |
合計ジャッジ時間 | 8,092 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 WA * 1 TLE * 1 -- * 1 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; public class Hello { public const int MOD = 1000000007; public static void Main() { var n = int.Parse(Console.ReadLine().Trim()); var a = new long[n + 1]; a[1] = 1; long ans; if (n % 2 == 0) ans = Func0(a, n); else ans = Func1(a, n); Console.WriteLine(ans); } public static long Func1(long[] a, int n) { var sum = 0L; for (int i = 2; i <= n - 1; i += 2) { if (a[i] == 0) { var w = 0L; if (i % 2 == 0) w = Func0(a, i) % MOD; else w = Func1(a, i) % MOD; sum += w; a[i] = w; } else sum += a[i]; sum %= MOD; } return (n * sum) % MOD; } public static long Func0(long[] a, int n) { var sum = 0L; for (int i = 1; i <= n - 1; i += 2) { if (a[i] == 0) { var w = 0L; if (i % 2 == 0) w = Func0(a, i) % MOD; else w = Func1(a, i) % MOD; sum += w; a[i] = w; } else sum += a[i]; sum %= MOD; } return (n * sum) % MOD; } }