Pagini recente » Cod sursa (job #1193697) | Cod sursa (job #2614107) | Cod sursa (job #29701) | Cod sursa (job #3182797) | Cod sursa (job #2379578)
///TEST
#include <bits/stdc++.h>
using namespace std;
ifstream f("pachete.in");
ofstream g("pachete.out");
int n,ox,oy,i,j,nrd;
struct str{
int x,y,l;
bool fol;
}v[5][50001];
bool cond(str a, str b){
if(a.x!=b.x)
return a.x<b.x;
return a.y<b.y;
}
int intre(int x, int y, int x2, int y2){
int x1=ox,y1=oy;
if(x1>x2)
swap(x1,x2);
if(y1>y2)
swap(y1,y2);
if(x>=x1 && x<=x2 && y>=y1 && y<=y2)
return 1;
return 0;
}
int main()
{
f>>n>>ox>>oy;
nrd=n;
int x,y;
for(i=1;i<=n;++i){
f>>x>>y;
if(x>=ox && y>=oy){
++v[1][0].l;
v[1][v[1][0].l].x=x;
v[1][v[1][0].l].y=y;
} else if(x>=ox && y<=oy){
++v[2][0].l;
v[2][v[2][0].l].x=x;
v[2][v[2][0].l].y=y;
} else if(x<=ox && y<=oy){
++v[3][0].l;
v[3][v[3][0].l].x=x;
v[3][v[3][0].l].y=y;
} else if(x<=ox && y>=oy){
++v[4][0].l;
v[4][v[4][0].l].x=x;
v[4][v[4][0].l].y=y;
}
}
for(i=1;i<=4;++i){
sort(v[i]+1,v[i]+v[i][0].l+1,cond);
int q;
for(j=1;j<=v[i][0].l;++j){
if(v[i][j].fol)
continue;
for(q=1;q<=v[i][0].l;++q){
if(q==j || v[i][q].fol)
continue;
if(intre(v[i][q].x,v[i][q].y,v[i][j].x,v[i][j].y)){
--nrd;
v[i][q].fol=1;
}
}
}
}
g<<nrd;
return 0;
}