Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2019-07-02 06:48:20.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:obstacole.in, obstacole.outSursăJunior Challenge 2019
AutorVlad TurcumanAdăugată deJuniorChallenge2019Junior Challenge 2019 JuniorChallenge2019
Timp execuţie pe test0.375 secLimită de memorie262144 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Obstacole

Se dau N segmente in plan, neorizontale si neverticale care nu se intersecteaza in niciun puct. Aceste segmente se comporta ca niste obstacole.

Fie M baloane cu aer cald care merg in sus ( x-ul ramane la fel, y creste). Daca un balon ajunge la un obstacol, balonul va merge de-a lungul obstacolului, in directia in care y creste. Cand balonul a ajuns la capatul obstacolului, el va continua ca inainte sa mearga in sus ( x-ul va ramane neschimbat pana la urmatorul obstacol pe care il intalneste).

Pentru fiecare dintre cele M baloane se cere sa se afiseze x-ul pe care o sa il aiba dupa trece de toate obstacolele pe care le va intalni.

Atentie! Daca un balon, mergand in sus, ajunge la capatul unui obstacol, atunci balonul va urma obstacolul. (vezi balonul 1 0 din exemplu)
Atentie! Baloanele pot incepe si de pe obstacole. In acest caz, ele vor merge pe obstacol. (vezi balonul 13 7 din exemplu)

Date de intrare

Fişierul de intrare obstacole.in se v-a gasi pe prima linie N si M. Pe urmatoarele N linii se vor gasi cate 4 numere x1, y1, x2, y2 reprezentand coordonatele punctelor unui segment. Pe urmatoarele M linii se vor gasi cate 2 numere x, y reprezentand coordonatele de plecare a balonului.

Date de ieşire

În fişierul de ieşire obstacole.out se vor gasi M numere, cate unul pe linie, fiecare semnificand x-ul la care o sa ajunga balonul corespondent.

Restricţii

  • 1 ≤ N, M ≤ 105
  • 0 ≤ x, y, x1, y1, x2, y2 ≤ 109 + 104
  • Pentru 20% din punctaj, N ≤ 100 si M ≤ 100.
  • Pentru 50% din punctaj, N ≤ 1000 si M ≤ 1000.

Exemplu

obstacole.inobstacole.out
6 7
1 1 15 4
1 4 7 8
8 7 9 8
2 9 6 11
6 10 8 8
11 9 13 7
1 3
1 0
3 3
4 8
8 5
11 5
13 7
6
15
6
6
9
11
11

Explicaţie

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?