.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » poligon1

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
.campion
poligon1


Timp maxim de executie/test:
0.1 secunde
Memorie totala disponibila/stiva:
16 MB/1 MB

Gigel a desenat pe hârtie un poligon (nu neaparat convex si care se poate chiar autointersecta) cu N vârfuri si a marcat mijlocul fiecarei laturi. Fratele lui, însa, a sters poligonul desenat, pe hârtie ramânând marcate numai mijloacele laturilor. Gigel ar dori, totusi, sa redeseneze poligonul, asa cum era el initial. Se considera ca poligonul are vârfurile numerotate de la 1 la N, în ordinea în care apar pe conturul poligonului. Cu aceasta numerotare a vârfurilor, se defineste si o numerotare a laturilor. Latura i (1<=i<N) este segmentul ce uneste vârfurile i si i+1. Latura N uneste vârfurile 1 si N.

Cerinta

Dându-se coordonatele mijloacelor laturilor unui poligon, determinati coordonatele vârfurilor sale.

Date de intrare

Pe prima linie a fisierului de intrare poligon1.in se afla numarul întreg N, de laturi (si vârfuri) ale poligonului. Pe urmatoarele N linii se afla câte doua numere reale (cu maxim trei zecimale), separate printr-un spatiu, x si y, reprezentând coordonatele mijloacelor fiecarei laturi, în ordine, de la 1 la N.

Date de iesire

Fisierul de iesire poligon1.out va contine mesajul 'fara solutie', în cazul în care Gigel a marcat gresit mijloacele laturilor si nu se poate forma nici un poligon având mijloacele laturilor date. În cazul în care exista cel putin o solutie, veti afisa N linii. Fiecare linie va contine doua numere reale, afisate cu trei zecimale, reprezentând coordonatele (x,y) ale unui vârf. Pe prima linie se vor afisa coordonatele vârfului numerotat cu 1, pe a doua linie, coordonatele vârfului numerotat cu 2 s.a.m.d.

Restrictii

  • 3<= N <= 10 000
  • Coordonatele mijloacelor laturilor sunt din intervalul [0, 2 000 000 000].
  • În cazul în care problema admite cel putin o solutie, cu coordonatele vârfurilor afisate în fisierul de iesire, se va calcula, pentru fiecare latura, coordonatele mijlocului acesteia. Veti primi punctaj maxim pentru testul respectiv, daca diferenta dintre valoarile calculate ale coordonatelor mijlocului si cele date în fisierul de intrare este cel mult 0.001, pentru oricare latura. Altfel, nu veti primi nici un punct.

Exemple

poligon1.in poligon1.out
4
0 0
2 0
2 2
0 2
-1.000 1.000
1.000 -1.000
3.000 1.000
1.000 3.000

 

poligon1.in poligon1.out
4
0 0
2 0
2 2
1 3
fara solutie

Mugurel Andreica
Universitatea Politehnica Bucuresti

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
surse trimise | ajutor