Se da un
poligon convex cu n vârfuri
prin coordonatele vârfurilor, date în sensul acelor de ceasornic.
Un punctul S din planul poligonului
este centru de simetrie, daca simetricul oricarui punct de pe poligon fata de
S apartine poligonului. O proprietate
a poligoanelor convexe cu centru de simetrie este aceea ca pot fi descompuse
în paralelograme.
Cerinta
Se cere sa se verifice daca
poligonul dat are centru de simetrie. În caz afirmativ sa se împarta
poligonul în paralelograme.
Date de intrare
Fisierul de intrare poligon.in
contine pe prima linie pe prima linie un numar natural nenul k,
care reprezinta numarul de teste, dupa care urmeaza k
grupe de date, câte un grup pentru fiecare test. Un grup de date contine
pe o linie numarul n, iar pe
urmatoarele n linii coordonatele
vârfurilor poligonului în forma urmatoare:
n
x1 y1
x2 y2
…
xn yn
Date de iesire
Fisierul de iesire poligon.out
va contine raspunsul la cele k
teste din fisierul de intrare. Pentru fiecare test se va scrie pe o linie numarul
natural h, care reprezinta numarul
de paralelograme din descompunere, urmat de h
linii cu coordonatele vârfurilor paralelogramelor din descompunere, în
formatul:
h
px11 py11 px21 py21 px31
py31 px41 py41
px12 py12 px22 py22 px32
py32 px42 py42
…
px1h py1h px2h py2h px3h
py3h px4h py4h
daca exista centru de simetrie, în caz contrar se va scrie doar cifra
0.
Un paralelogram este descris prin coordonatele vârfurilor sale în
sensul acelor de ceasornic (abscisa ordonata).
Restrictii si precizari
1 <= k <= 5
4 <= n <= 50
Coordonatele vârfurilor
poligoanelor sunt numere întregi din intervalul [-2000,
2000].
Daca doua paralelograme
cu interioarele disjuncte au o latura comuna si alte doua laturi în
prelungire (ca în figura urmatoare paralelogramele ABED
si BCFE ) se va afisa un singur
paralelogram (în figura ACFD).