JavaRush /Java блог /Архив info.javarush /Кухня(); Задание N54
terranum
28 уровень
Milan

Кухня(); Задание N54

Статья из группы Архив info.javarush
Кухня(); Задание N54 - 1 Правила [Одномерные массивы] 54. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить номера точек, которые могут являться вершинами равнобедренного треугольника.
Комментарии (7)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vash_the_Stampede Уровень 11
19 сентября 2014
public class Main {
    private Main(){}

    public static void main(String[] args) {
    }

    public static int[] solve(double[] arr) {
        Point[] points = new Point[arr.length / 2];
        for (int i = 0; i < points.length; i++) {
            points[i] = new Point(arr[2 * i], arr[2 * i + 1]);
            for (int j = 0; j < i; j++) {
                for (int k = 0; k < j; k++) {
                    double a = points[i].distTo(points[j]);
                    double b = points[j].distTo(points[k]);
                    double c = points[k].distTo(points[i]);
                    if ((a - b) * (b - c) * (c - a) == 0) {
                        return new int[] { i, j, k };
                    }
                }
            }
        }
        return null;
    }
}

class Point {
    private double x;
    private double y;

    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public double distTo(Point p) {
        return Math.hypot(x - p.x, y - p.y);
    }
}