Fişierul intrare/ieşire: | seg.in, seg.out | Sursă | All You Can Code 2008 |
Autor | Andrei Paul Puni, Mihai Ciucu | Adăugată de | |
Timp execuţie pe test | 0.5 sec | Limită de memorie | 24096 kbytes |
Scorul tău | N/A | Dificultate |
Vezi solutiile trimise | Statistici
Segmente
Se dau N segmente. Sa se afle lungime minima a unei linii frante inchise care contine segmentele date pe laturile ei. Linia franta trebuie sa se poata desena pornind de la un punct oarecare de pe ea, mergand pe fiecare latura o singura data si ajungand inapoi la punctul de pornire (linia se poate autointersecta).
Date de intrare
Prima linie va contine numarul T de teste, urmeaza T teste. Pe prima linie a unui test se va afla numarul N, pe urmatoarele N lini se vor vor afla coordonatele capetelor segmentelor.
Date de iesire
Pentru fiecare test se va afisa lungimea linilor care trebuie desenate, afisata cu 6 zecimale cu aproximare.
Restrictii
- 1 ≤ N ≤ 17
- Coordonatele punctelor se afla in intervalul [ -2000 , 2000 ]
- In fisierul de intrare se vor afla maxim 500 teste dintre care cel mult 4 vor avea N > 10
- Pentru fiecare test raspunsul va fi considerat corect numai daca diferenta in valoare absoluta intre raspunsul oficial si cel al concurentului este mai mica sau egala cu 10-6.
Exemplu
seg.in | seg.out |
---|---|
2 2 1 1 1 2 1 1 2 2 3 -931.693980 781.297764 -767.512077 1305.542158 933.100984 -166.303237 1225.734021 -125.170151 320.771418 -163.911119 -148.087080 -332.428961 | 1.000000 4427.669962 |
Explicatie
la testul 1 se uneste 1 2 cu 2 2 si se obtine lungimea 1