Pagini recente » Cod sursa (job #1377456) | Cod sursa (job #1433288) | Cod sursa (job #361779) | Cod sursa (job #55744) | Cod sursa (job #3166779)
#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{
int x;
int 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 <int> st_sus;
set <int> st_jos;
set <int> dr_sus;
set <int> dr_jos;
set <int> :: 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_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].y > a.x)
{
it = dr_jos.upper_bound(v[i].y);
if(it!=dr_jos.begin())
{
it--;
dr_jos.erase(it);
}
dr_sus.insert(v[i].y);
}
else if(v[i].x > a.y)
{
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
}