Pagini recente » Cod sursa (job #663831) | Cod sursa (job #3258280) | Cod sursa (job #619932) | Cod sursa (job #2148901) | Cod sursa (job #1519568)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("rays.in");
ofstream fout("rays.out");
int n,n1,n2,i,viz[200001],NR,ultim1,ultim2;
double x,y,y2,THEBIGX;
struct date
{
int ord;
double sus,jos;
}v1[200001],v3[200001];
bool cmp(date A,date B)
{
if(A.sus==B.sus)
return A.jos<B.jos;
else
return A.sus<B.sus;
}
int main()
{
freopen("rays.in","r",stdin);
freopen("rays.out","w",stdout);
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x>>y>>y2;
if(y>y2)
swap(y,y2);
if(x>0)
{
n1++;
v1[n1].ord=i;
v1[n1].jos=y/x;
v1[n1].sus=y2/x;
}
else
{
n2++;
x=-x;
v3[n2].ord=i;
v3[n2].jos=y/x;
v3[n2].sus=y2/x;
}
}
sort(v1+1,v1+n1+1,cmp);
sort(v3+1,v3+n2+1,cmp);
NR=0;
THEBIGX=-9999999;
for(i=1;i<=n1;i++)
{
if(v1[i].jos>THEBIGX)
{
NR++;
THEBIGX=v1[i].sus;
}
}
THEBIGX=-9999999;
for(i=1;i<=n2;i++)
{
if(v3[i].jos>THEBIGX)
{
NR++;
THEBIGX=v3[i].sus;
}
}
fout<<NR;
return 0;
}