Cod sursa(job #469881)

Utilizator bog29Antohi Bogdan bog29 Data 9 iulie 2010 14:41:33
Problema Ograzi Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
#include<vector>
#define dmax 50003
#define dmax2 900006
using namespace std;
ifstream in("ograzi.in");
ofstream out("ograzi.out");

int n,m,w,h,x[dmax],y[dmax],c,d,sol;

vector<int>p[dmax2];

void verif(int a,int b)
{	int z;
	if(!p[97*a+b].empty() )
	{	z=p[97*a+b].front();
		if(x[z] <= c && c<=x[z]+w && y[z] <= d && d <= y[z]+h)
			sol++;
	}	
}

int main()
{	int i,a,b;
	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);
		p[97*a+b].push_back(i);
	}
	for(i=1;i<=m;i++)
	{	in>>c>>d;
		a=(c+w-1) / (w);
		b=(d+h-1) / (h);
		verif(a,b);
		verif(a-1,b);
		verif(a,b-1);
		verif(a-1,b-1);
	}
	out<<sol;
	out.close();
	return 0;
}