Pagini recente » Cod sursa (job #775351) | Cod sursa (job #2596213) | Cod sursa (job #41882) | Cod sursa (job #1314767) | Cod sursa (job #3166658)
#include <bits/stdc++.h>
#define START ios::sync_with_stdio(false); fin.tie(NULL); fout.tie(NULL);
#define STOP fin.close(); fout.close(); return 0;
#define MAX 50000
using namespace std;
struct punct{
long long x;
long long y;
};
int cmp(punct A, punct B)
{
if(A.x > B.x)
return 0;
return 1;
}
ifstream fin("pachete.in");
ofstream fout("pachete.out");
int n;
punct v[MAX+1], a;
set <long long> st_sus;
set <long long> st_jos;
set <long long> dr_sus;
set <long long> dr_jos;
set <long long> :: iterator it;
int main()
{
START
fin >> n;
fin >> a.x >> a.y;
for(int i=1; i<=n; i++)
fin >> v[i].x >> v[i].y;
sort(v+1,v+1+n,cmp);
for(int i=1; i<=n; i++)
{
if(v[i].x > a.x && v[i].y > a.y)
{
it = dr_jos.upper_bound(v[i].y);
if(it!=dr_jos.begin())
{
it--;
dr_jos.erase(it);
}
dr_jos.insert(v[i].y);
}
if(v[i].x < a.x && v[i].y > a.y)
{
it = dr_sus.upper_bound(v[i].y);
if(it!=dr_sus.begin())
{
it--;
dr_sus.erase(it);
}
dr_sus.insert(v[i].y);
}
else if(v[i].x < a.x)
{
it = st_sus.upper_bound(v[i].y);
if(it!=st_sus.begin())
{
it--;
st_sus.erase(it);
}
st_sus.insert(v[i].y);
}
else
{
it = st_jos.upper_bound(v[i].y);
if(it!=st_jos.begin())
{
it--;
st_jos.erase(it);
}
st_jos.insert(v[i].y);
}
}
fout << st_sus.size()+st_jos.size()+dr_sus.size()+dr_jos.size();
STOP
}