ajutor

Time limit: 0.25s Memory limit: 16MB Input: ajutor.in Output: ajutor.out

Cerință

Dacă te-ai rănit, nu folosi Sprite să tratezi rana. Cel mai bine e să fugi la cel mai apropiat post de prim ajutor. Norocul tău este că ai o hartă din care poţi afla coordonatele carteziene ale posturilor de prim ajutor. Ghinionul este că, din cauza durerii, nu poţi să fugi direct spre un post, ci numai pe direcţiile nord-sud şi est-vest. Ca să ştii dacă mai are sens să fugi spre un post sau să te bucuri de ultimele clipe de viaţă, cel mai bine e să evaluezi distanţa până la cel mai apropiat post de prim ajutor.
Cel mai apropiat post este cel pentru care distanţa Manhattan este minimă.
De data aceasta ai scăpat pentru că timpul necesar ajungerii până la post a fost suficient; însă îţi pui întrebarea: dacă accidentul s-ar fi întâmplat în alt loc, ai fi scăpat?

Se consideră NN puncte in plan, reprezentând posturile de prim ajutor şi alte MM puncte reprezentând posibile locaţii ale accidentului. Se cere pentru fiecare dintre cele MM puncte distanţa Manhattan până la cel mai apropiat post.

Date de intrare

Fişierul ajutor.in conţine pe prima linie numerele întregi NN şi MM, în acestă ordine, separate printr-un spaţiu. Pe următoarele NN linii se află câte două numere întregi, separate printr-un spaţiu, reprezentând coordonatele fiecărui post de prim ajutor. Pe următoarele MM linii se află câte două numere intregi, separate printr-un spaţiu, reprezentând coordonatele punctelor de accident. Coordonatele se dau în ordinea (abscisa, ordonata).

Date de ieşire

Fişierul ajutor.out va conţine MM linii, cu câte un număr pe fiecare linie, reprezentând distanţa minimă până la cel mai apropiat post de prim ajutor.

Restricții și precizări

  • 0<N<4010 < N < 401
  • 0<M<500 0010 < M < 500 \ 001
  • oricare coodonată este un număr întreg din intervalul [0,32 000][0,32 \ 000]
  • Dacă te afli deja la un post de prim ajutor (coordonatele sunt identice) distanţa e 00.
  • Distanţa Manhattan este cel mai scurt drum între două puncte, mergând doar pe direcţii paralele cu axele de coordonate, adică x1x2+y1y2|x_1-x_2|+|y_1-y_2|, unde (x1,y1)(x_1,y_1), (x2,y2)(x_2,y_2) sunt coordonatele celor 22 puncte.
  • În fişierul de intrare pot exista puncte cu aceleaşi coordonate.
  • Se acordă punctele pentru fiecare test, doar dacă toate valorile din fişierul de ieşire sunt corecte.
  • Tot ce face Sprite e să-ţi potolească setea.

Exemplu

ajutor.in

4 4
1 1
5 5
1 5
5 1
0 0
1 1
3 3
4 1

ajutor.out

2
0
4
1

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