結果
| 問題 |
No.45 回転寿司
|
| ユーザー |
|
| 提出日時 | 2019-05-18 23:57:04 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
AC
|
| 実行時間 | 38 ms / 5,000 ms |
| コード長 | 1,282 bytes |
| コンパイル時間 | 2,684 ms |
| コンパイル使用メモリ | 107,008 KB |
| 実行使用メモリ | 19,712 KB |
| 最終ジャッジ日時 | 2024-12-27 20:34:44 |
| 合計ジャッジ時間 | 5,478 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 30 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;
using System.Linq;
namespace Program
{
class Program
{
static void Main()
{
int count = int.Parse(Console.ReadLine());
int[] aji = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
Dp m_dp = new Dp(aji, count);
Console.WriteLine(m_dp.GetMax().ToString());
Console.ReadLine();
}
}
class Dp
{
private int[,] _dp = new int[1000, 2];
private int[] _aji;
private int _saraCount;
public Dp(int[] aji, int saracount)
{
_saraCount = saracount;
_aji = aji;
_dp[0, 0] = 0;
_dp[0, 1] = _aji[0];
}
public int GetMax()
{
if (_saraCount == 1)
{
return _aji[0];
}
_dp[1, 0] = _dp[0, 1];
_dp[1, 1] = _aji[1] + _dp[0, 0];
for (int count = 2; count < _saraCount; count++)
{
_dp[count, 0] = Math.Max(_dp[count - 1, 1], _dp[count - 2, 1]);
_dp[count, 1] = _aji[count] + Math.Max(_dp[count - 1, 0], _dp[count - 2, 0]);
}
return Math.Max(_dp[_saraCount - 1, 0], _dp[_saraCount - 1, 1]);
}
}
}