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ă puncte in plan, reprezentând posturile de prim ajutor şi alte puncte reprezentând posibile locaţii ale accidentului. Se cere pentru fiecare dintre cele 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 şi , în acestă ordine, separate printr-un spaţiu. Pe următoarele 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 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 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
- oricare coodonată este un număr întreg din intervalul
- Dacă te afli deja la un post de prim ajutor (coordonatele sunt identice) distanţa e .
- Distanţa Manhattan este cel mai scurt drum între două puncte, mergând doar pe direcţii paralele cu axele de coordonate, adică , unde , sunt coordonatele celor 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