Pagini recente » Cod sursa (job #2540890) | Cod sursa (job #15197) | Cod sursa (job #1290070) | Cod sursa (job #935093) | Cod sursa (job #561053)
Cod sursa(job #561053)
#include<fstream>
#include<vector>
using namespace std;
#define nrn 50005
#define mod 193939
ifstream in("ograzi.in");
ofstream out("ograzi.out");
int X[nrn],Y[nrn],sol,n,w,h,c,d;
vector<int>H[mod];
vector<int>::iterator it;
void check(int a,int b)
{
int poz,k;
poz=(97*a+b)%mod;
for(it=H[poz].begin();it<H[poz].end();++it)
{
k=*it;;
if(X[k]<=c && X[k]+w>=c && Y[k]<=d && Y[k]+h>=d)
++sol;
}
}
int main()
{
int i,a,b,m;
in>>n>>m>>w>>h;
for(i=1;i<=n;++i)
{
in>>X[i]>>Y[i];
a=(X[i]+w-1)/w;
b=(Y[i]+h-1)/h;
H[(97*a+b)%mod].push_back(i);
}
for(i=1;i<=m;++i)
{
in>>c>>d;
a=(c+w-1)/w;
b=(d+h-1)/h;
check(a,b);
check(a,b-1);
check(a-1,b);
check(a-1,b-1);
}
out<<sol<<'\n';
in.close();
out.close();
return 0;
}