[BOJ 14106] Mnogokut

View as PDF

Submit solution

Points: 1
Time limit: 0.5s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

Gustav se voli zabavljati s geometrijskim problemima. Proučavao je razne geometrijske probleme na internetu i naišao na jedan koji ne zna riješiti, pa mu stoga pomognite da riješi sljedeći problem. Zadan je konveksni mnogokut i skup pravaca koji sijeku mnogokut.</p>

Za svaki od zadanih pravaca potrebno je odrediti udaljenost od mnogokuta (udaljenost pravca i najbližeg vrha mnogokuta).

Pravac siječe mnogokut ako i samo ako ima barem jednu zajedničku točku s unutrašnjosti mnogokuta. Niti jedan pravac neće biti paralelan s nekom od stranica mnogokuta. 

입력 형식

U prvom retku N (1 ≤ N ≤ 100 000), broj vrhova mnogokuta.</p>

U sljedećih N redaka dva prirodna broja po apsolutnoj vrijednosti manja od 109 – koordinate vrhova konveksnog mnogokuta.

Vrhovi su dani u smjeru kazaljke na satu.

U sljedećem retku nalazi se broj M (1 ≤ M ≤ 100 000), broj pravaca.

U sljedećih M redaka tri prirodna broja A, B, C (1 ≤ A, B, C ≤ 109 ) koji predstavljaju pravac Ax + By + C = 0. Svaki od zadanih pravaca siječe mnogokut. 

출력 형식

M redaka, u retku i se nalazi jedan realan broj zaokružen na 3 decimale – udaljenost mnogokuta te i-tog pravca. 

예제 입력 1

4
0 2
2 0
0 -2
-2 0
1
0 4 -5

예제 출력 1

0.750

예제 입력 2

3
0 6
6 0
0 0
2
2 4 -13
0 1 -2

예제 출력 2

0.224
2.000

Comments

There are no comments at the moment.