Advertisement
knyazer

Untitled

Oct 22nd, 2019
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.74 KB | None | 0 0
  1. package com.school;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.  
  7.     public static int dist(int p1x, int p1y, int p2x, int p2y) // Расчитываем квадрат расстояния
  8.     {
  9.         return (p1x - p2x) * (p1x - p2x) + (p1y - p2y) * (p1y - p2y);
  10.     }
  11.  
  12.     public static void main(String[] args)
  13.     {
  14.         Scanner in = new Scanner(System.in);
  15.  
  16.         int len, i, j, oldMinIndex, baseIndex = 0, minIndex = 0;
  17.         int oldMinDist = 2147483647/*самое большое число*/, minDist = 2147483647, dst;
  18.  
  19.  
  20.         len = in.nextInt();
  21.  
  22.         int [] px = new int[len];
  23.         int [] py = new int[len];
  24.  
  25.         for (i = 0; i < len; i++)
  26.         {
  27.             px[i] = in.nextInt();
  28.             py[i] = in.nextInt();
  29.         }
  30.  
  31.         for (i = 0; i < len; i++) {
  32.             minDist = 2147483647;
  33.             for (j = 0; j < len; j++) { // Для всех баз находим ближайший бункер
  34.                 if (j == i) continue;
  35.                 dst = dist(px[i], py[i], px[j], py[j]);
  36.                 if (dst < minDist) {
  37.                     minDist = dst;
  38.                     minIndex = j;
  39.                 }
  40.             }
  41.             for (j = 0; j < len; j++) { // А теперь находим второй по дальности для каждой базы
  42.                 if (j == i || j == minIndex) continue;
  43.                 dst = dist(px[i], py[i], px[j], py[j]);
  44.                 if (dst < oldMinDist) {
  45.                     oldMinDist = dst;
  46.                     oldMinIndex = j;
  47.                     baseIndex = i;
  48.                 }
  49.             }
  50.         }
  51.  
  52.  
  53.         System.out.println(baseIndex + 1);
  54.         System.out.println(Math.sqrt(oldMinDist));
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement