Pagini recente » Cod sursa (job #1786190) | Cod sursa (job #1924704) | Cod sursa (job #963641) | Cod sursa (job #1228102) | Cod sursa (job #1642835)
#include<cstdio>
#include<algorithm>
#include<set>
using namespace std;
struct eu{int x,y;};
eu v[50001];
int i,j,n,m,k,x,y;
set<int>:: iterator it;
set<int> s;
bool sorting(eu a,eu b)
{
return a.x<b.x;
}
int main ()
{
freopen("pachete.in","r",stdin);
freopen("pachete.out","w",stdout);
scanf("%d%d%d",&n,&x,&y);
for(i=1;i<=n;i++)
scanf("%d%d",&v[i].x,&v[i].y);
sort(v+1,v+n+1,sorting);
v[0].x=-1;
for(i=1;i<=n;i++)
if(v[i].x>x)
{
k=i;
break;
}
for(i=k-1;i>=1;i--)
{
if(s.empty())
s.insert(v[i].y);
else
{
if(y>v[i].y)
{
it=s.lower_bound(v[i].y);
if(it!=s.begin())
it--;
if(*it&&*it<y&&*it>v[i].y)
s.erase(*it);
s.insert(v[i].y);
}
else
{
it=s.lower_bound(v[i].y);
if(it!=s.begin())
it--;
if(*it&&*it>y&&*it<v[i].y)
s.erase(*it);
s.insert(v[i].y);
}
}
}
int nr=0;
for(it=s.begin();it!=s.end();it++)
nr++;
s.clear();
for(i=k;i<=n;i++)
{
if(s.empty())
s.insert(v[i].y);
else
{
if(y>v[i].y)
{
it=s.lower_bound(v[i].y);
if(it!=s.begin())
it--;
if(*it&&*it<y&&*it>v[i].y)
s.erase(*it);
s.insert(v[i].y);
}
else
{
it=s.lower_bound(v[i].y);
if(it!=s.begin())
it--;
if(*it&&*it>y&&*it<v[i].y)
s.erase(*it);
s.insert(v[i].y);
}
}
}
for(it=s.begin();it!=s.end();it++)
nr++;
printf("%d",nr);
return 0;
}