Cerința
Se dau N puncte din plan prin coordonatele lor.
Se mai dau Q perechi de puncte, diferite de cele date inițial.
Să se verifice, pentru fiecare pereche de puncte (A , B) dintre cele Q, dacă există traseu care pornește din A și ajunge în B, prin deplasări cu pași de lungime 1 spre Nord, Vest, Sud, Est și evitând orice punct dintre cele N date inițial.
Date de intrare
Pe primul rând al fișierului text links.in se află numerele naturale N şi Q, separate prin spațiu. Pe următoarele N rânduri se află scrise câte două numere naturale, separate prin spațiu, reprezentând coordonatele celor N puncte date. Pe următoarele Q rânduri se află scrise câte patru numere naturale, separate prin câte un spațiu, reprezentând coordonatele celor Q perechi de puncte date pentru verificările cerute.
Date de ieșire
Pe fiecare din primele Q rânduri ale fișierului de ieșire links.out va fi scris unul dintre numerele 1 (adevărat) sau 0 (fals), reprezentând răspunsul la verificarea corespunzătoare, după cum există traseu sau nu există traseu între punctele din perechea dată în interogare.
Restricții și precizări
1 ≤ N ≤ 100.0001 ≤ Q ≤ 10- Coordonatele tuturor punctelor date sunt, numere naturale nenule mai mici decât
1.000.000.000 - Pentru
30%din teste coordonatele tuturor punctelor date vor fi numere naturale nenule mai mici decât1000
Exemplu:
links.in
4 2 1 2 2 1 3 2 2 3 1 1 2 2 1 1 1 3
links.out
0 1
Explicație
La punctul (1,1) se poate ajunge doar trecând prin (2,3),(2,1),(1,2),(3,2) care sunt cele 4 puncte date şi deci trebuie evitate. Deci nu se poate ajunge de la (1,1) la (2,2).Răspunsul corect este 0.
De la (1,1) la (1,3) se poate ajunge pe traseul: (1,1), (0,1), (0,2), (0,3), (1,3). Răspunsul corect este 1.