Pagini recente » Cod sursa (job #2588091) | Cod sursa (job #868159) | Cod sursa (job #1314280) | Cod sursa (job #1343571) | Cod sursa (job #935525)
Cod sursa(job #935525)
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
struct jap
{
double x,y;
};
bool cmp(jap a,jap b)
{
return a.y<=b.y;
}
int main()
{
freopen("rays.in","r",stdin);
freopen("rays.out","w",stdout);
int n,i,nr=0,x1,y1,y2,j,m1=-1,m2=-1;
double dr;
jap a;
vector <jap> v,v2;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d%d",&x1,&y1,&y2);
if(y1>y2)
{
j=y1;
y1=y2;
y2=j;
}
if(x1>0)
{
m1++;
a.x=1.00*y1/x1;
a.y=1.00*y2/x1;
v.push_back(a);
}
else
{
m2++;
a.x=-1.00*y1/x1;
a.y=-1.00*y2/x1;
v2.push_back(a);
}
}
sort(v.begin(),v.end(),cmp);
sort(v.begin(),v.end(),cmp);
if(m1>=0)
{
nr++;
dr=v[0].y;
for(i=1;i<=m1;i++)
{
if(v[i].x>dr)
{
nr++;
dr=v[i].y;
}
}
}
if(m2>0)
{
nr++;
dr=v2[0].y;
for(i=1;i<=m2;i++)
{
if(v2[i].x>dr)
{
nr++;
dr=v2[i].y;
}
}
}
printf("%d\n",nr);
return 0;
}