Pagini recente » Cod sursa (job #710918) | Cod sursa (job #359643) | Cod sursa (job #1681037) | Cod sursa (job #351384) | Cod sursa (job #917464)
Cod sursa(job #917464)
#include<stdio.h>
#include<algorithm>
#define eps 1.e-14
using namespace std;
struct SEGM { double x,y; };
SEGM st[200010],dr[200010];
bool comp (SEGM unu, SEGM doi)
{
return unu.x-doi.x<=-eps;
}
int main()
{
freopen("rays.in","r",stdin);
freopen("rays.out","w",stdout);
int i,N,s,d,res,x,y1,y2;
double tg;
scanf("%d",&N);
s=d=0;
for(i=1;i<=N;i++)
{
scanf("%d%d%d",&x,&y1,&y2);
if(y1>y2) swap(y1,y2);
if(x<0)
{
st[++s].x=(double)y1/x;
st[s].y=(double)y2/x;
}
else
{
x=-x;
dr[++s].x=(double)y1/x;
dr[s].y=(double)y2/x;
}
}
res=0;
sort(st+1,st+1+s,comp);
sort(dr+1,dr+1+d,comp);
tg=st[1].y;
for(i=2;i<=N;i++)
if(st[i].y>tg)
{
res++;
tg=st[i].y;
}
else
tg=st[i].y;
tg=dr[1].y;
for(i=2;i<=N;i++)
if(st[i].y>tg)
{
res++;
tg=st[i].y;
}
else
tg=st[i].y;
printf("%d\n",res);
return 0;
}