Fişierul intrare/ieşire:oglinzi.in, oglinzi.outSursăRomanian Collegiate Programming Contest 2019
AutorStefan PopaAdăugată deRCPC2019RCPC2019 RCPC2019
Timp execuţie pe test0.5 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Oglinzi

Se considera un sistem de coordonate 2D. In origine, se afla un laser ce emite o raza de lumina la 45 de grade (vezi exemplul). Axa Ox este o oglinda, astfel ca raza de lumina se va reflecta daca atinge axa Ox.

Mai exista N oglinzi orizontale. Oglinda i este caracterizata de 3 parametri: li, ri si hi, fiind din punct de vedere geometric un segment intre (li, hi) si (ri, hi). Daca raza de lumina atinge o oglinda, va fi reflectata. Oglinzile functioneaza pe ambele parti. Mai mult, intervalele [li, ri] sunt disjuncte si sunt date in ordine crescatoare (l1 < r1 < l2 < r2 < ... < ln < rn).

Dupa toate oglinzile, la x = L > rn, exista un ecran de inaltime H. Din punct de vedere geometric, acesta este un segment intre (L, 0) si (L, H). Iti doresti ca raza de lumina sa ajunga pe ecran. Pentru asta, poti face mai multe operatii. O operatie consta in a muta o oglinda vertical cu o pozitie (de la hi la hi-1 sau hi+1 ).

Se cere numarul minim de operatii pentru ca raza de lumina sa ajunga pe ecran. In cazul in care acest lucru nu se poate realiza, se va afisa Imposibil.

Date de intrare

Fişierul de intrare oglinzi.in va contine pe prima linie numarul de teste T. Urmeaza descrierile celor T teste.
Pe prima linie a fiecarui test, se vor afla numerele intregi N, L si H.
Vor urma N linii, linia i continand cele 3 numere intregi ce descriu oglinda i: li, ri si hi.

Date de ieşire

În fişierul de ieşire oglinzi.out afisati T linii cu raspunsurile pentru cele T teste.

Restricţii

  • 1 ≤ T ≤ 10
  • 1 ≤ N ≤ 200
  • 1 ≤ hi, H ≤ 400
  • 0 ≤ l1 < r1 < l2 < r2 < ... < ln < rn < L ≤ 400
  • Un ecran aflat la inaltimea 1 nu poate fi mutat in jos.
  • Daca raza de lumina atinge o oglinda in unul din colturi, aceasta se va reflecta (vezi exemplul). De asemenea, daca raza de lumina atinge ecranul in capatul de sus, se considera ca a ajuns pe ecran.

Exemplu

oglinzi.inoglinzi.out
2
3 15 1
4 6 5
7 8 4
10 11 5
1 10 1
1 2 1
2
Imposibil

Explicaţie

Pentru primul test, solutia optima este mutarea oglinzii 2 cu o pozitie mai jos si a oglinzii 3 cu o pozitie mai sus, conform imaginii. Costul optim este asadar 2.
Pentru cel de-al doilea test, raza de lumina nu va ajunge niciodata pe ecran, indiferent de cum mutam singura oglinda existenta.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?