Ydist

Time limit: 0.3s Memory limit: 64MB Input: ydist.in Output: ydist.out

Prinţesa cu ochii verzi, Rafaela, a decis că este timpul să renunţe la problemele regatului şi să se joace. Astfel, ea are N bile punctiforme (reprezentate de NN puncte în planul cartezian) şi QQ drepte care trec prin originea sistemului de coordonate. Pentru fiecare dintre cele QQ drepte, se întreabă care ar fi prima bilă dintre cele NN care ar lovi dreapta dacă bilele ar începe simultan să cadă (perpendicular pe axa Ox, cu aceeaşi viteză).

Cerință

Dându-se NN puncte în plan şi QQ drepte (de query), Rafaela se întreabă care ar fi distanţa minimă (pe axa Oy) de la puncte la fiecare dreaptă. Voi trebuie să afişaţi în fişierul de ieşire răspunsul pentru fiecare dintre cele QQ drepte.

Date de intrare

Fişierul de intrare ydist.in conţine pe prima linie două numere naturale NN şi QQ, separate prin câte un spaţiu, reprezentând numărul de puncte din plan, respectiv numărul de drepte de query. Pe următoarele NN linii urmează câte două numere naturale xx şi yy, separate prin câte un spaţiu, reprezentând coordonatele punctelor în planul cartezian. Pe următoarele QQ linii urmează câte două numere naturale aa şi bb, separate prin câte un spaţiu, reprezentând coordonatele celui de-al doilea punct prin care trece dreapta de query (primul fiind (0,0)(0, 0), al doilea (a,b)(a, b)).

Date de ieșire

Fişierul de ieşire ydist.out va conţine QQ linii, pe fiecare linie aflându-se un singur număr real, reprezentând distanţa minimă (pe axa Oy) de la puncte la dreapta de query respectivă.

Restricții și precizări

  • 1N100 0001 ≤ N ≤ 100 \ 000
  • 1Q100 0001 ≤ Q ≤ 100 \ 000
  • Coordonatele xx şi yy ale tuturor punctelor din fişierul de intrare se află în intervalul [1,1 000 000][1, 1 \ 000 \ 000].
  • Rezultatul se consideră corect dacă valoarea absolută a diferenţei între acesta şi rezultatul comisiei este mai mică decât 0.000010.00001.
  • Se garantează că există cel puţin o bilă deasupra fiecărei drepte.

Exemplu

ydist.in

7 3
14 20
4 4
6 6
7 15
5 2
1 20
19 16
5 18
2 4
17 6

ydist.out

16.4
1
0.235294117647059

Explicație

Prima dreapta de query este: (0,0)(5,18)(0, 0) → (5, 18), iar disţanta minimă (pe axa Oy) este dată de punctul: (1,20)(1, 20).

A doua dreaptă de query este: (0,0)(2,4)(0, 0) → (2, 4), iar distanţa minimă (pe axa Oy) este dată de punctul: (7,15)(7, 15).

A treia dreaptă de query este: (0,0)(17,6)(0, 0) → (17, 6), iar distanţa minimă (pe axa Oy) este dată de punctul: (5,2)(5, 2).

Log in or sign up to be able to send submissions!