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

Внутрішні точки решітчатого многокутника

Внутрішні точки решітчатого многокутника

\textbf{Внутрішні точки} це точки з \textbf{цілочисельними} координатами. \textbf{Решітчатий многокутник} це многокутник з вершинами у точках з цілочисельними координатами. \includegraphics{https://static.e-olymp.com/content/32/321d268929319ac596de9f0a0cf7af440818e8ae.jpg} Точки з цілочисельними координатами на границі многокутника є \textbf{граничними точками} (показані не зафарбованими точками на рисунку вище), а \textbf{внутрішні точки} знаходяться всередині многокутника і також мають цілочисельні координаты (показано зафарбованими точками на рисунку вище). Многокутник називається опуклим якщо довільний його відрізок знаходиться або на його границі або всередині многокутника. Це твердження рівносильно тому, що довільний внутрішній кут многокутника менше \textbf{180} градусів. Зверніть увагу, що довільний відрізок між двома внутрішніми точками завжди знаходиться всередині многокутника, але не на його границі. Внутрішні точки опуклого многокутника решітки на довільній горизонтальній лінії утворюють єдиний сегмент від лівої крайньої точки до правої крайньої точки (які можуть співпадати). Зверніть увагу, що може бути ніяких внутрішніх точок (А), або лише одна внутрішня точка (B), або ізольовані внутрішні точки (C), як це показано на рисунках нижче. \includegraphics{https://static.e-olymp.com/content/6f/6ff95dd4082d6f8378679f6cf93dd9a9705e08ce.jpg} Напишіть програму, яка читає вершини опуклого многокутника гратки у стандартному порядку і виводить перелік його внутрішніх точок у вигляді списку горизонтальних відрізків. Вершини многокутника решітки знаходяться у стандартному порядку, якщо: a) Перша вершина має найбільше значення координати \textbf{y}. Якщо дві вершини мають однакове значення \textbf{y}, то вершина з меншим значенням координати \textbf{x} вказується у першу чергу. b) Вершини задано за годинниковою стрілкою навколо многокутника. \InputFile Перший рядок вхідного файлу містить одне ціле число \textbf{P} (\textbf{1} ≤ \textbf{P} ≤ \textbf{1000}) , яке вказує кількість наступних наборів тестових даних. У першому рядку кожного набору даних міститься номер тестового прикладу, а далі через пропуск вказано кількість вершин \textbf{N} (\textbf{3} ≤ \textbf{N} ≤ \textbf{50}) многокутника. Інші рядки у кожному наборі даних містять вершини, по одній у рядку у стандартному порядку. Кожен рядок містить спочатку координату \textbf{х}, а потім координату \textbf{у}. Усі координати цілі числа. \OutputFile Для кожного набору даних вивести декілька рядків. У першому рядку вивести десяткове ціле число - номер тестового набору даних, а далі через пропуск десяткове ціле - кількість горизонтальних рядків, які містять внутрішні точки (воно може бути рівним нулю (\textbf{0}) або більше). Рядки внутрішніх точок, якщо такі є, йдуть по одной у рядку у порядку спадання значення \textbf{у}. Кожен рядок містить спочатку десяткове ціле число - \textbf{у-}координату рядка точок, а далі через пропуск спочатку десяткове ціле число \textbf{х-}координати самої лівої точки у цьому рядку, а потім \textbf{х}-координату самої правої точки у цьому ж рядку.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
1
1 8
5 10
8 9
11 6
10 2
6 0
1 1
0 4
2 8
Вихідні дані #1
1 9
9 4 7
8 3 8
7 2 9
6 2 10
5 1 10
4 1 10
3 1 10
2 1 9
1 2 7