Codeforces Beta Round 97 (Div. 1) |
---|
Закончено |
Маленький Петя очень любит прямоугольники, а особенно квадраты. Недавно мама подарила ему 8 попарно не совпадающих точек на плоскости. Он решил разбить их на два множества по 4 точки так, чтобы точки из первого множества лежали в вершинах некоего квадрата, а из второго — в вершинах прямоугольника. Каждая из заданных 8 точек должна принадлежать ровно одному множеству. Допускается, чтобы прямоугольник из второго множества также был квадратом. Если разбиений несколько, Петю удовлетворит любое. Помогите ему найти одно такое разбиение. Обратите внимание, что и прямоугольник, и квадрат из разбиения должны иметь ненулевую площадь. Стороны фигур не обязательно должны быть параллельны осям координат.
Задано 8 пар целых чисел, по одной паре в каждой строке — координаты точек, которые есть у Пети. Все координаты по модулю не превышают 104. Гарантируется, что никакие две точки не совпадают.
В первой строке выведите «YES» (без кавычек), если искомое разбиение существует. Во второй строке выведите 4 числа через пробел — номера точек из исходного множества, которые лежат в вершинах квадрата. Точки нумеруются начиная с 1. Номера можно выводить в любом порядке. В третьей строке выведите номера точек, лежащих в вершинах прямоугольника в аналогичном формате. Все выведенные числа должны быть попарно различны.
Если искомого разбиения не существует, первая строка должна содержать слово «NO» (без кавычек), после которого ничего выводить не нужно.
0 0
10 11
10 0
0 11
1 1
2 2
2 1
1 2
YES
5 6 7 8
1 2 3 4
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
NO
0 0
4 4
4 0
0 4
1 2
2 3
3 2
2 1
YES
1 2 3 4
5 6 7 8
Обратите внимание на третий пример: стороны фигур не обязательно должны быть параллельны осям координат.
Название |
---|