トップページに戻る
次の競技プログラミングの問題へ
前の競技プログラミングの問題へ
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());
}
}
解説
最大値-最小値が解となります。