using System; using System.Collections.Generic; using System.Linq; class Program { static string InputPattern = "InputX"; static List GetInputList() { var WillReturn = new List(); if (InputPattern == "Input1") { WillReturn.Add("0 0"); WillReturn.Add("2 0"); //1 //A君は最初は点P(0,0)にいます。B君は最初は点Q(2,0)にいます。 //点(1,0)を待ち合わせ場所にすれば1秒後に出会うことができます。 } else if (InputPattern == "Input2") { WillReturn.Add("0 0"); WillReturn.Add("3 0"); //1.5 //A君は最初は点P(0,0)にいます。B君は最初は点Q(3,0)にいます。 //(1.5,0)を待ち合わせ場所にすれば1.5秒後に出会うことができます。 //待ち合わせ場所は必ずしも整数座標上でなくても良いです。 } else if (InputPattern == "Input3") { WillReturn.Add("0 0"); WillReturn.Add("5 1"); //3 //A君は最初は点P(0,0)にいます。B君は最初は点Q(5,1)にいます。 //例えば(3,0)を待ち合わせ場所にすれば3秒後に最短時間で出会えます。 //待ち合わせ場所の候補は(3,0)以外にもあります。 } else if (InputPattern == "Input4") { WillReturn.Add("-12345 6789"); WillReturn.Add("1234 -56789"); //38578.5 //入力の座標にはマイナス値も含まれるので注意してください } else { string wkStr; while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr); } return WillReturn; } static void Main() { List InputList = GetInputList(); decimal[] wkArr = { }; Action SplitAct = pStr => wkArr = pStr.Split(' ').Select(X => decimal.Parse(X)).ToArray(); SplitAct(InputList[0]); decimal PX = wkArr[0], PY = wkArr[1]; SplitAct(InputList[1]); decimal QX = wkArr[0], QY = wkArr[1]; Console.WriteLine(Math.Abs(PX - QX) / 2M + Math.Abs(PY - QY) / 2M); } }