70分求助,c#
查看原帖
70分求助,c#
1025286
mc65535楼主2024/1/22 00:34

tle on #2#9#10

using System;

namespace 入门
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] strings = Console.ReadLine().Split(' ');
            int systemAX = int.Parse(strings[0]);
            int systemAY = int.Parse(strings[1]);
            int systemBX = int.Parse(strings[2]);
            int systemBY = int.Parse(strings[3]);
            if (systemAX > systemBX)
            {
                (systemBX, systemAX) = (systemAX, systemBX);
                (systemBY, systemAY) = (systemAY, systemBY);
            }
            int N = int.Parse(Console.ReadLine());
            int[] missilesX = new int[N];
            int[] missilesY = new int[N];
            for (int i = 0; i < N; i++)
            {
                strings = Console.ReadLine().Split(' ');
                missilesX[i] = int.Parse(strings[0]);
                missilesY[i] = int.Parse(strings[1]);
            }
            int[] systemAToMissiles = new int[N];
            int[] systemBToMissiles = new int[N];
            int[] copy = new int[N];
            for (int i = 0; i < systemAToMissiles.Length; i++)
            {
                systemAToMissiles[i] = (int)(Math.Pow(systemAX - missilesX[i], 2) + Math.Pow(systemAY - missilesY[i], 2));
                copy[i] = systemAToMissiles[i];
                systemBToMissiles[i] = (int)(Math.Pow(systemBX - missilesX[i], 2) + Math.Pow(systemBY - missilesY[i], 2));
            } 
            Array.Sort(systemAToMissiles);
            int max = 0;
            int result = systemAToMissiles[systemAToMissiles.Length - 1];
            for (int i = N - 2; i >= 0; i--)
            {
                for (int j = i + 1; j <= N - 1; j++)
                    max = Math.Max(systemBToMissiles[Array.IndexOf(copy, systemAToMissiles[j])], max);
                result = Math.Min(systemAToMissiles[i] + max, result);
            }
            Console.WriteLine(result);
        }
    }
}
2024/1/22 00:34
加载中...