Pagini recente » Cod sursa (job #2620063) | Cod sursa (job #1022428) | Cod sursa (job #1506933) | Cod sursa (job #1876863) | Cod sursa (job #2628825)
#include <bits/stdc++.h>
#define maxn 100005
#define dmax 193939
std::ifstream fin ("ograzi.in");
std::ofstream fout ("ograzi.out");
int X[maxn], Y[maxn];
std::vector <int> v[dmax];
int sol = 0, lx, ly, x, y;
void check (int a, int b){
int p = (97*a+b)%dmax;
if (v[p].empty() == false){
for (auto i:v[p]){
if (X[i] <= x and x <= X[i]+lx and Y[i] <= y and y <= Y[i]+ly)
sol ++;
}
}
}
int main()
{
int A, S, i, p, a, b;
fin >> A >> S >> lx >> ly;
for (i=0; i<A; i++){
fin >> X[i] >> Y[i];
a = (X[i] + lx - 1) / lx;
b = (Y[i] + ly - 1) / ly;
v[(97*a+b)%dmax].push_back (i);
}
for (i=0; i<S; i++){
fin >> x >> y;
a = (x + lx - 1) / lx;
b = (y + ly - 1) / ly;
check (a, b);
check (a-1, b);
check (a, b-1);
check (a-1, b-1);
}
fout << sol << '\n';
return 0;
}