Pagini recente » Cod sursa (job #316872) | Cod sursa (job #3200144) | Cod sursa (job #13288) | Cod sursa (job #1190268) | Cod sursa (job #10630)
Cod sursa(job #10630)
#include <stdio.h>
#include <set>
#include <algorithm>
using namespace std;
#define maxn 50010
set <int> s;
set <int> :: iterator I;
int n,px,py,l,sol;
int a[maxn],b[maxn];
int x[maxn],y[maxn];
int p[maxn];
int cmp(int i,int j)
{
return ((x[i]<x[j]) || ((x[i]==x[j]) && (y[i]<y[j])));
}
void solve()
{
int i;
sort(p+1,p+l+1,cmp);
for (i=l;i>0;i--)
{
I = s.upper_bound(y[p[i]]);
if (I == s.end()) sol++;
else s.erase(I);
s.insert(y[p[i]]);
}
s.clear();
}
int main()
{
freopen("pachete.in","r",stdin);
freopen("pachete.out","w",stdout);
int i;
scanf("%d ",&n);
scanf("%d %d ",&px,&py);
for (i=1;i<=n;i++) scanf("%d %d",&a[i],&b[i]);
l=0;
for (i=1;i<=n;i++)
if ((a[i]>px) && (b[i]>py))
{
l++;
x[l]=a[i];
y[l]=b[i];
p[l]=l;
}
solve();
l=0;
for (i=1;i<=n;i++)
if ((a[i]>px) && (b[i]<py))
{
l++;
x[l]=a[i];
y[l]=py-b[i];
p[l]=l;
}
solve();
l=0;
for (i=1;i<=n;i++)
if ((a[i]<px) && (b[i]<py))
{
l++;
x[l]=px-a[i];
y[l]=py-b[i];
p[l]=l;
}
solve();
l=0;
for (i=1;i<=n;i++)
if ((a[i]<px) && (b[i]>py))
{
l++;
x[l]=px-a[i];
y[l]=b[i];
p[l]=l;
}
solve();
printf("%d\n",sol);
return 0;
}