Infiniti_Inter

понятно?

Nov 23rd, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.16 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using System.Collections.Generic;
  5. namespace Example
  6. {
  7.  
  8.     struct Spoint
  9.     {
  10.         public int x, y, z;
  11.  
  12.         public static Spoint Get(string points)
  13.         {
  14.             string[] s = points.Split();
  15.             Spoint cur = new Spoint();
  16.             cur.x = Int32.Parse(s[0]);
  17.             cur.y = Int32.Parse(s[1]);
  18.             cur.z = Int32.Parse(s[2]);
  19.             return cur;
  20.         }
  21.         static int sqr(int x)
  22.         {
  23.             return x * x;
  24.         }
  25.  
  26.         public static double Range(Spoint a, Spoint b)
  27.         {
  28.             return Math.Sqrt(sqr(a.x - b.x) + sqr(a.y - b.y) + sqr(a.z - b.z));
  29.         }
  30.  
  31.         public override string ToString()
  32.         {
  33.             return x.ToString() + " " + y.ToString() + " " + z.ToString();
  34.         }
  35.  
  36.     }
  37.    
  38.  
  39.     class Program
  40.     {
  41.  
  42.         static (Spoint, Spoint) Solve(Spoint[] p)
  43.         {
  44.             int fs, sc;
  45.             fs = sc = 0;
  46.             double ans = Double.MaxValue;
  47.             for (int i = 0; i < p.Length; i++)
  48.             {
  49.                
  50.                 for (int j = 0; j < p.Length; j++)
  51.                 {
  52.                     if (i == j)
  53.                     continue;
  54.                     double cur = Spoint.Range(p[i], p[j]);
  55.                     if (cur < ans)
  56.                     {
  57.                         ans = cur;
  58.                         fs = i;
  59.                         sc = j;
  60.                     }
  61.                 }
  62.             }
  63.             return (p[fs], p[sc]);
  64.         }
  65.  
  66.         static void Main()
  67.         {
  68.             string[] inpLine = null;
  69.             using (StreamReader inFile = new StreamReader("D:/input.txt"))
  70.             {
  71.                  inpLine = inFile.ReadToEnd().Split('\n');
  72.             }
  73.             Spoint[] points = new Spoint[inpLine.Length];
  74.             for (int i = 0; i < points.Length; i++)
  75.             {
  76.                 points[i] = Spoint.Get(inpLine[i]);
  77.             }
  78.  
  79.             var ans = Solve(points);
  80.             Console.WriteLine(ans.Item1);
  81.             Console.WriteLine(ans.Item2);
  82.  
  83.             Console.ReadKey();
  84.         }
  85.     }
  86. }
Add Comment
Please, Sign In to add comment