結果

問題 No.45 回転寿司
ユーザー 14番
提出日時 2016-03-27 20:45:21
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 36 ms / 5,000 ms
コード長 1,697 bytes
コンパイル時間 5,018 ms
コンパイル使用メモリ 105,216 KB
実行使用メモリ 18,688 KB
最終ジャッジ日時 2024-12-27 13:00:05
合計ジャッジ時間 4,498 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
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.

ソースコード

diff #

using System;
using System.Collections.Generic;
using System.Text;

public class Program
{
    public void Proc(){
        Reader.IsDebug = false;
        int susiCount = int.Parse(Reader.ReadLine());
        this.SusiList.AddRange(Reader.GetInt());
        
        int ans = this.GetAns(0);
        Console.WriteLine(ans);
    }
    
    private List<int> SusiList = new List<int>();
    
    private Dictionary<int, int> dic = new Dictionary<int, int>();
    
    private int GetAns(int idx) {
        if(dic.ContainsKey(idx)) {
            return dic[idx];
        }
        if(idx >= SusiList.Count) {
            return 0;
        }
        int ans = 0;
        
        ans = Math.Max(ans, GetAns(idx + 2) + this.SusiList[idx]);
        ans = Math.Max(ans, this.GetAns(idx+1));
        
        dic.Add(idx, ans);
        return ans;
    }

    public static void Main(string[] args)
    {
        Program prg = new Program();
        prg.Proc();
    }
}

class Reader
{
    public static bool IsDebug = true;
    
    private static System.IO.StringReader sr;
    
    public static string ReadLine() {
        if(IsDebug) {
            if(sr == null) {
                sr = new System.IO.StringReader(initStr.Trim());
            }
            return sr.ReadLine();
        } else {
            return Console.ReadLine();
        }
    }
    
    public static int[] GetInt(char delimiter = ' ') {
        string[] inpt = ReadLine().Split(delimiter);
        int[] ret = new int[inpt.Length];
        for(int i=0; i<inpt.Length; i++) {
            ret[i] = int.Parse(inpt[i]);
        }
        return ret;
    }
    
    private static string initStr = @"


7
1 2 9 10 1 1 4


    ";
}

0