Diferente pentru problema/triangulare intre reviziile #4 si #18

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="triangulare") ==
Cu atata Programare Dinamica si matematica, Petrica a trecut acum pe geometrie. Un poligon se numeste poligon simplu daca poligonul nu se autointersectează sau, mai riguros, oricare două laturi nu au în comun decât cel mult vârfurile acestuia. Orice poligon simplu cu $N$ varfuri poate fi triangulat prin trasarea a $N-3$ segmente
Petrica a trecut acum pe geometrie. Un poligon se numeste simplu daca poligonul nu se autointersecteaza sau, mai riguros, oricare doua laturi nu au in comun decat cel mult varfurile acestuia. Orice poligon simplu cu $N$ varfuri poate fi triangulat, sau impartit in triunghiuri, prin trasarea a $N - 3$ segmente intre varfurile acestuia, cu conditia ca aceste segmente, impreuna cu laturile poligonului nu se intersecteaza intre ele, cu exceptia varfurilor pe care le au in comun.
 
Pentru un poligon simplu dat, voi trebuie sa il triangulati.
h2. Date de intrare
Fişierul de intrare $triangulare.in$ ...
Fişierul de intrare $triangulare.in$ contine pe prima linie un numar natural $T$ reprezentand numarul de teste. Fiecare test va avea pe prima linie a sa un numar natural $N$ reprezentand numarul de varfuri ale poligonului. Pe urmatoarele $N$ linii se afla cate doua numere intregi, $x$ si $y$, reprezentand coordonatele punctelor.
h2. Date de ieşire
În fişierul de ieşire $triangulare.out$ ...
În fişierul de ieşire $triangulare.out$ se vor afisa raspunsurile pentru cele $T$ teste. Un test este format din $N - 3$ linii, pe fiecare linie fiind doua numere, $a$ si $b$ reprezentand indicii celor doua varfuri care formeaza segmentul respectiv. Lista segmentelor trebuie sa fie sortata crescator dupa valoarea $a$, iar in caz de egalitate crescator dupa valoarea $b$.
h2. Restricţii
* $... ≤ ... ≤ ...$
* $T = 5$
* $4 ≤ N ≤ 50$
* Coordonatele sunt numere intregi din intervalul $[-10^3^, 10^3^]$
* Indicii sunt numerotati de la $0$.
* **ATENTIE!** In caz ca exista mai multe triangulari, se va afisa triangularea care da lista minima lexicografica. De exemplu, daca o triangulare valida da lista $0 2, 0 3, 2 4$ iar o a doua triangulare valida este lista $0 2, 0 4, 1 3$ atunci se va afisa prima deoarece este mai mica lexicografica.
h2. Exemplu
table(example). |_. triangulare.in |_. triangulare.out |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
| 3
  4
  0 0
  5 0
  5 5
  0 5
  4
  0 0
  5 0
  5 5
  3 2
  5
  0 5
  3 2
  5 5
  5 0
  0 0
| 0 2
  1 3
  1 3
  1 4
|
h3. Explicaţie
...
Pentru primul test se observa ca avem un patrat, si orice diagonala a sa este buna, dar o alegem pe cea care ne ofera minimul lexicografic, adica segmentul $0 2$. In cazul celui de-al doilea test deoarece poligonul nu mai este un patrat, singura solutie posibila este segmentul $1 3$. Raspunsul pentru ultimul test este din nou unic, iar lista este formata din segmentele $1 3$ si $1 4$.
== include(page="template/taskfooter" task_id="triangulare") ==

Nu exista diferente intre securitate.

Diferente intre topic forum:

 
9418