sea

Time limit: 0.12s Memory limit: 16MB Input: sea.in Output: sea.out

Cerință

Pe mare se află NN vapoare. Malul este în mod curios perfect drept şi este reprezentat prin axa Ox a sistemului de coordonate. Cele N vapoare sunt reprezentate prin perechi de coordonate (Vxi,Vyi)(V_{x_i}, V_{y_i}), unde VyiV_{y_i} este strict pozitiv (marea este deasupra axei Ox). Pe mal se află MM faruri, date prin coordonatele lor FxiF_{x_i} (fiind exact la limita dintre mare şi uscat, yy-ul lor este întotdeauna 00). Cele MM faruri sunt ciudate pentru că ele nu pot lumina decât în stânga. Astfel aria luminată de fiecare far ii este delimitată de un sfert de cerc cu o rază FriF_{r_i}. Mai exact, un vapor este luminat de un anumit far dacă se află în stânga farului (are xx-ul mai mic) şi distanţa de la far la vapor este mai mică sau egală cu valoarea FriF_{r_i} asociată farului respectiv.
Pentru fiecare far se mai dă şi un număr natural strict pozitiv FniF_{n_i}. Din motive greu de înţeles, şeful portului doreşte ca fiecare far ii să lumineze cel puţin FniF_{n_i} vapoare (un vapor poate fi luminat de mai multe faruri). El doreşte consum minim de energie şi vrea să afle pentru fiecare far raza minimă necesară pentru a lumina numărul cerut de vapoare.

Determinaţi pentru fiecare far valoarea FriF_{r_i} care reprezintă raza minimă necesară pentru ca farul să lumineze cel puţin FniF_{n_i} vapoare.

Date de intrare

Prima linie a fişierului sea.in conţine două numere întregi NN şi MM separate printr-un spaţiu, reprezentând numărul de vapoare, respectiv numărul de faruri. Fiecare dintre următoarele NN linii conţine câte o pereche de numere reale separate printr-un spaţiu VxiV_{x_i} şi VyiV_{y_i} (coordonatele vapoarelor). Fiecare dintre următoarele MM linii conţine câte o pereche de numere separate printr-un spaţiu, unul real FxiF_{x_i} şi unul întreg FniF_{n_i} (coordonatele orizontale şi numerele asociate farurilor).

Date de ieșire

Fişierul sea.out va conţine MM linii, fiecare linie conţinând un număr real, dat cu 44 zecimale: pe linia ii se află raza minimă necesară pentru ca farul ii să lumineze FniF_{n_i} vapoare.

Restricții și precizări

  • 1N4001 \leq N \leq 400
  • 1M100 0001 \leq M \leq 100 \ 000
  • 0<y,r<100 0000 < y, r < 100 \ 000
  • 100 000<x<100 000-100 \ 000 < x < 100 \ 000
  • 1FniN1 \leq F_{n_i} \leq N
  • În fişierul de intrare farurile sunt sortate crescător după coordonatele xx.
  • Nu vor exista două vapoare, sau un far şi un vapor cu acelaşi xx. În schimb pot exista două sau mai multe faruri cu acelaşi xx, caz în care ele vor fi unul lângă altul în fişierul de intrare (evident din moment ce sunt sortate după xx). Ordinea în care apar în fişierul de intrare farurile cu acelaşi xx nu este definită. Pot exista chiar două faruri identice.
  • Numerele reale din fişierul de intrare vor avea maxim 44 zecimale
  • Rezultatul va fi verificat cu o precizie de 0.0010.001 (rezultatul va fi considerat corect dacă modulul diferenţei dintre rezultatul corect şi cel furnizat de concurent nu depăşeşte 0.0010.001)
  • Există întotdeauna soluţie (pentru fiecare far ii vor exista întotdeauna cel puţin FniF_{n_i} vapoare în stânga lui).

Exemplu

sea.in

3 5
-0.5 0.5
-2 5
3 4
-1 1
0 1
0 2
0 1
5 1

sea.out

5.0990
0.7071
5.3852
0.7071
4.4721

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