結果

問題 No.378 名声値を稼ごう
ユーザー 明智重蔵
提出日時 2016-07-02 20:36:45
言語 C#
(csc 3.100.19.26603)
結果
AC  
実行時間 28 ms
コード長 1,322 Byte
コンパイル時間 1,174 ms
使用メモリ 9,836 KB
最終ジャッジ日時 2019-10-07 02:36:44

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
input1 AC 28 ms
9,812 KB
input2 AC 28 ms
9,828 KB
input3 AC 28 ms
9,836 KB
input4 AC 28 ms
9,836 KB
sample AC 28 ms
9,800 KB
テストケース一括ダウンロード
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.100.19.26603 (9d80dea7)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #
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("12");
            //2
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("123456789123456789");
            //31
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();
        ulong N = ulong.Parse(InputList[0]);

        var MeiseiList = new List<ulong>();
        ulong CurrMeisei = N;
        while (CurrMeisei > 0) {
            MeiseiList.Add(CurrMeisei);
            CurrMeisei /= 2;
        }

        ulong Sum1 = 0;
        MeiseiList.ForEach(X => Sum1 += X);

        ulong MaxDiff = 0;

        ulong RunSum = 0;
        foreach (ulong EachMeisei in MeiseiList) {
            RunSum += EachMeisei;

            ulong Sum2 = RunSum + EachMeisei;
            ulong CurrDiff = Sum2 - Sum1;
            if (MaxDiff < CurrDiff) 
                MaxDiff = CurrDiff;
        }
        Console.WriteLine(MaxDiff);
    }
}
0