Pagini recente » Istoria paginii utilizator/ralucamaria | Cod sursa (job #2971490) | Rating Isac Marius-Sergiu (mariusake212) | Istoria paginii monthly-2012/runda-6/solutii | Cod sursa (job #1804764)
#include<bits/stdc++.h>
#define mp make_pair
#define pb push_back
using namespace std;
ifstream f("pachete.in");
ofstream g("pachete.out");
int i,j,x,n,y,sx,sy,sol;
vector<pair<int,int> >p[4];
set<int>s;
set<int>::iterator it;
int main()
{
f>>n>>sx>>sy;
for(i=1;i<=n;++i)
{
f>>x>>y;
if(x>sx)
{
if(y>sy) p[0].pb(mp(x,y));
else p[1].pb(mp(x,-y));
}
else
{
if(y>sy) p[2].pb(mp(-x,y));
else p[3].pb(mp(-x,-y));
}
}
for(i=0;i<4;++i)
{
sort(p[i].begin(),p[i].end());
s.clear();
for(j=0;j<p[i].size();++j)
{
it=s.lower_bound(-p[i][j].second);
if(it!=s.end()) s.erase(it);
s.insert(-p[i][j].second);
}
sol+=s.size();
}
g<<sol;
return 0;
}