Pagini recente » Cod sursa (job #347805) | Cod sursa (job #2707402) | Cod sursa (job #1414176) | Cod sursa (job #1525377) | Cod sursa (job #780174)
Cod sursa(job #780174)
#include <fstream>
#include <vector>
#define DN 50005
#define MOD 193939
using namespace std;
typedef vector<int>::iterator it;
int n,m,h,w,x[DN],y[DN],px,py,rez;
vector<int> hs[MOD];
int hash(int a, int b) {
return (a*97 +b)%MOD;
}
int check(int a, int b) {
int unde=hash(a,b);
for(it i=hs[unde].begin(); i!=hs[unde].end(); ++i)
if(x[*i]<=px && x[*i]+w>=px && y[*i]<=py && y[*i]+h>=py) return 1;
return 0;
}
int main()
{
ifstream f("ograzi.in");
ofstream g("ograzi.out");
f>>n>>m>>w>>h;
for(int i=1; i<=n; ++i) {
f>>x[i]>>y[i];
int a=(x[i]+w-1)/w,b=(y[i]+h-1)/h;
hs[hash(a,b)].push_back(i);
}
for(int i=1; i<=m; ++i) {
f>>px>>py;
int a=(px+w-1)/w, b=(py+h-1)/h;
rez+=(check(a,b)|check(a,b-1)|check(a-1,b)|check(a-1,b-1));
}
g<<rez;
return 0;
}