eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Повінь

Повінь

\includegraphics{https://static.e-olymp.com/content/76/769ba2d9d04b718bda0bd1d902300b4c423a69ee.jpg} У 1964 році катастрофічна повінь потрясла Загреб. Багато будівель було зруйновано водою, що вдарила по їхніх стінах. У цій задачі вам буде надано спрощену модель міста перед повінню, і ви маєте визначити, які із стін залишаться ціоими після повені. Модель складається з \textbf{N} точок на координатній площині і \textbf{W} стін. Кожна стіна з'єднує пару точок і не проходить через інші точки. Модель також задовольняє такі властивості: - ніякі дві стіни не перетинаються і не накладаються на іншу, за виключенням того, що вони можуть мати спільні кінці; - кожна стіна є паралельною чи до горизонтальної, чи до вертикальної координатної осі. На початку вся координатна площина є сухою. У момент часу нуль вода миттєво затоплює зовнішній простір (простір, не обмежений стінами). Рівно через годину кожна стіна, у якої з одного боку - вода, а з іншого боку - повітря, руйнується під тиском води. Після цього вода миттєво затоплює простір, який перестав бути обмеженим цілими стінами. У результаті цього можуть з'явитися нові стіни, у яких з одного боку вода, а з другого боку - повітря. Ще через годину ці стіни також руйнуються, і вода потрапляє в новий простір. Так продовжується до тих пір, поки вода не затопить всю територію. Приклад процесу руйнування показано на рисунку (інтервал між станами - одна година). \textbf{Завдання} Напишіть програму, яка за заданими координатами \textbf{N} точок і опису \textbf{W} стін, що з'єднують ці точки, визначає, які стіни залишаться цілими після повені. \InputFile Перший рядок вхідних даних містить ціле число \textbf{N} (\textbf{2 ≤ N ≤ 100 000}), кількість точок на площині. Кожен з наступних \textbf{N} рядків містить по два цілих числа \textbf{X} i \textbf{Y} (кожне від \textbf{0} до \textbf{1 000 000} включно) - координати точки. Точки нумеруються від \textbf{1} до \textbf{N} в тому порядку, у якому вони задані. Ніякі дві точки не співпадають. Наступний рядок містить ціле число \textbf{W} (\textbf{1 ≤ W ≤ 2N}) - кількість стін. Кожен з наступних \textbf{W} рядків містить по два різних цілих числа \textbf{A} i \textbf{B} (\textbf{1 }≤\textbf{ A}, \textbf{B ≤ N}), які означають, що перед повінню була стіна, що з'єднувала точки \textbf{A} i \textbf{B}. Стіни нумеруються від \textbf{1} до \textbf{W} в тому порядку, у якому вони задані. \OutputFile Перший рядок вихідних даних має містити ціле число \textbf{K} - кількість стін, які залишаться цілими після повені. Наступні \textbf{K} рядків мають містити номери стін, які залишаться цілими, по одному номеру в кожному рядку. Номери стін можна виводити в довільному порядку.
Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
15
1 1
8 1
4 2
7 2
2 3
4 3
6 3
2 5
4 5
6 5
4 6
7 6
1 8
4 8
8 8
17
1 2
2 15
15 14
14 13
13 1
14 11
11 12
12 4
4 3
3 6
6 5
5 8
8 9
9 11
9 10
10 7
7 6
Вихідні дані #1
4
6
15
16
17
Джерело IOI-2007, День 1