Prihlásenie Registrácia  

SVK-TP - Technický plyn

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3

Počet bodov: 1

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Úloha

Firma PALiarne MAteriálov dostala zákazku na balenie darčekových predmetov z čokolády. Tieto predmety sú vyrábané na objednávky, teda pre každý druh predmetu je vytvorená forma v tvare podľa požiadaviek. Následne treba zabaliť 10 rovnakých kusov položených na seba do potravinárskej fólie. Na obaľovanie fóliou už má stroj, ktorý sa otáča okolo pracovného stola a fóliu zabalí ľubovoľný predmet (niečo podobné ako sa balia kufre na letisku). Keďže ide o potravinu, tak navyše kvôli trvanlivosti musia nahradiť vzduch technickým plynom. Na určenie výslednej ceny teda potrebujú vedieť koľko plynu treba pre jednotlivé formy naplniť do výsledného obalu.

Vašou úlohou je spočítať, koľko percent z výsledného obaleného balenia tvorí technický plyn (teda jeho podiel na celkovom objeme). Každá forma je zadaná ako 2D obrys, teda súradnice vrcholov na jej obvode.

obalený predmet
Na obrázku je modrou farbou zobrazená forma, červenou farbou obal z fólie a žltou farbou technický plyn v obale.

Vstup

Prvý riadok obsahuje počet testovacích sád S. Každá testovacia sada začína riadkom udávajúcim počet bodov 3 ≤ N ≤ 1.000. Nasleduje v nej N riadkov obsahujúcich súradnice bodu 0 ≤ xi, yi ≤ 1.000.000 (v poradí ako sú na obvode). Môžete predpokladať, že žiadne tri za sebou idúce body neležia na jednej priamke.

Výstup

Pre každú testovaciu sadu vypíšte jeden riadok - jedno reálne číslo udávajúce počet percent technického plynu s presnosťou na aspoň 4 desatinné miesta.

Príklad

Vstup:

2
5
0 0
0 6
6 6
6 0
3 3
5
0 0
10 0
10 10
5 15
0 10

Výstup:

25.0000
0.0000

Hint

Obsah mnohouholníka (znamienkový) je možné vypočítať pomocu vzorca:
vzorec na výpočet obsahu mnohouholníka