Pagini recente » Cod sursa (job #466639) | Cod sursa (job #1576625) | Cod sursa (job #1544016) | Cod sursa (job #1144117) | Cod sursa (job #2639876)
#include<fstream>
#include<vector>
using namespace std;
#define nrn 50006
#define mod 999983
//#define mod 17
ifstream f("ograzi.in");
ofstream g("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 and X[k]+w>=c and Y[k]<=d and Y[k]+h>=d)
++sol;
}
}
int main()
{
int i,a,b,m,val;
f>>n>>m>>w>>h;
for(i=1;i<=n;++i)
{
f>>X[i]>>Y[i];
a=(X[i]+w)/w;
b=(Y[i]+h)/h;
val=97*a+b;
val=val%mod;
H[val].push_back(i);
}
for(i=1;i<=m;++i)
{
f>>c>>d;
a=(c+w)/w;
b=(d+h)/h;
check(a,b);
check(a,b-1);
check(a-1,b);
check(a-1,b-1);
}
g<<sol<<'\n';
return 0;
}