Fişierul intrare/ieşire:triangulare.in, triangulare.outSursăONIS 2014, Runda 1
AutorDragos OpricaAdăugată defmins123FMI No Stress fmins123
Timp execuţie pe test0.3 secLimită de memorie4736 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Triangulare

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.

Date de intrare

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.

Date de ieşire

Î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.

Restricţii

  • T = 5
  • 4 ≤ N ≤ 50
  • Coordonatele sunt numere intregi din intervalul [-103, 103]
  • 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.

Exemplu

triangulare.intriangulare.out
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

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.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content