Codeforces Round 124 (Div. 1) |
---|
Закончено |
Даны дерево с n вершинами и n точек на плоскости, никакие три из которых не лежат на одной прямой.
Вам надо нарисовать заданное дерево на плоскости, используя заданные точки в качестве вершин.
То есть каждой вершине дерева нужно сопоставить ровно одну точку, и каждая точка должна быть сопоставлена какой-либо вершине. Если две вершины дерева соединены ребром, между соответствующими точками должен быть нарисован отрезок. Отрезки, соответствующие несмежным ребрам, не должны иметь общих точек. Отрезки, соответствующие смежным ребрам, должны иметь ровно одну общую точку.
В первой строке записано целое число n (1 ≤ n ≤ 1500) — количество вершин в дереве (оно же — количество выбранных точек на плоскости).
В следующих n - 1 строках через пробел записано по два целых числа ui и vi (1 ≤ ui, vi ≤ n, ui ≠ vi) — номера соединенных i-ым ребром вершин дерева.
В следующих n строках через пробел записано по два целых числа xi и yi ( - 109 ≤ xi, yi ≤ 109) — координаты i-ой точки на плоскости. Никакие три точки не лежат на одной прямой.
Гарантируется, что при заданных ограничениях задача имеет решение.
Выведите n различных целых чисел от 1 до n через пробел: i-ое число должно равняться номеру вершины, которую надо поместить в i-ую точку (точки нумеруются в порядке их перечисления во входных данных).
Если существует несколько решений, выведите любое.
3
1 3
2 3
0 0
1 1
2 0
1 3 2
4
1 2
2 3
1 4
-1 -2
3 5
-3 3
2 0
4 2 1 3
Возможные ответы для примеров приведены ниже.
Название |
---|