Pagini recente » Rating Popescu Lucian (PopescuLucian) | Cod sursa (job #3294806) | Arbori de intervale si aplicatii in geometria computationala | Rating Vasilescu Popescu (t2011t) | Cod sursa (job #24963)
Cod sursa(job #24963)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define MAX_N 50005
#define FIN "ograzi.in"
#define FOUT "ograzi.ok"
#define x first
#define y second
int N, M, W, H, Res; char buf[256], *p;
pair<int, int> P[MAX_N];
pair<int, int> get(void)
{
int a, b;
fgets(buf, sizeof(buf), stdin);
for (p = buf, a = 0; *p >= '0' && *p <= '9'; p++)
a = a*10 + *p-'0';
for (; *p == ' '; p++);
for (b = 0; *p >= '0' && *p <= '9'; p++)
b = b*10 + *p-'0';
return make_pair(a, b);
}
int main(void)
{
int i, j;
pair<int, int> p;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d %d %d %d\n", &N, &M, &W, &H);
for (i = 0; i < N; i++)
P[i] = get();
random_shuffle(P, P+N);
for (i = 0; i < M; i++)
{
p = get();
for (j = 0; j < N; j++)
if (P[j].x <= p.x && p.x <= P[j].x+W &&
P[j].y <= p.y && p.y <= P[j].y+H) break;
Res += j == N;
}
printf("%d\n", Res);
return 0;
}