Pagini recente » Cod sursa (job #2657788) | Cod sursa (job #2271175) | Cod sursa (job #2151540) | Cod sursa (job #2019373) | Cod sursa (job #2633345)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ograzi.in");
ofstream g("ograzi.out");
struct eveniment
{
int tip,x,y;
};
int n,m,h,w;
bool cmp(eveniment a, eveniment b)
{
return a.x<b.x;
}
int main()
{
f>>n>>m>>w>>h;
vector <eveniment> eves;
for(int i=1;i<=n;i++)
{
int x,y;
f>>x>>y;
eves.push_back(eveniment{1,x,y});
}
for(int i=1;i<=m;i++)
{
int x,y;
f>>x>>y;
eves.push_back(eveniment{2,x,y+h});
eves.push_back(eveniment{3,x+w,y+h});
}
int nr=0;
set <int> s;
sort(eves.begin(),eves.end(),cmp);
for(auto e : eves)
{
if(e.tip==2)
{
s.insert(e.y);
}
else if(e.tip==3)
{
s.erase(e.y);
}
else if(e.tip==1)
{
set <int> :: iterator it = s.lower_bound(e.y);
if(*it-e.y<=h)
{
++nr;
}
}
}
g<<nr<<'\n';
return 0;
}