トップページに戻る    次の競技プログラミングの問題へ    前の競技プログラミングの問題へ

ABC-064-B Traveling AtCoDeer Problem

■■■問題■■■

クリスマスもあと半年となり、トナカイのAtCoDeer君はプレゼントを配る計画を立てることにしました。

TopCoDeer通りにはN個の家が並んでいます。
i個目の家は座標aiにあります。彼はこのすべての家にプレゼントを配ることにしました。

好きな場所から開始し好きな場所で終了することができる時、最小の移動距離を求めなさい。

■■■入力■■■

N
a1 a2 ・・・ aN

●1 <= N <= 100
●0 <= ai <= 1000
●aiは整数である

■■■出力■■■

AtCoDeer君が動く距離の最小値を出力しなさい


C#のソース

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static string InputPattern = "Input1";

    static List<string> GetInputList()
    {
        var WillReturn = new List<string>();

        if (InputPattern == "Input1") {
            WillReturn.Add("4");
            WillReturn.Add("2 3 7 9");
            //7
            //AtCoDeer君が座標9からスタートし、
            //座標2までそのまま一直線にすすむと移動距離7が達成できます。
            //また、移動距離が7未満の方法は存在しないので、最小の移動距離は7です。
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("8");
            WillReturn.Add("3 1 4 1 5 9 2 6");
            //8
            //同じ場所に複数の家がある可能性もあります
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();
        int[] AArr = InputList[1].Split(' ').Select(X => int.Parse(X)).ToArray();

        Console.WriteLine(AArr.Max() - AArr.Min());
    }
}


解説

最大値-最小値が解となります。