Pagini recente » Cod sursa (job #1655889) | Cod sursa (job #2906112) | Cod sursa (job #1069786) | Cod sursa (job #2119712) | Cod sursa (job #2243477)
#include<fstream>
#include<algorithm>
#define x first
#define y second
using namespace std;
ifstream fi("rays.in");
ofstream fo("rays.out");
double dr;
pair<double,double> Ist[200005],Idr[200005];
int n,x,y,yy,i,rez,nr1,nr2;
int main()
{
fi>>n;
for(i=1; i<=n; i++)
{
fi>>x>>y>>yy;
if(y>yy)
swap(y,yy);
if(x<0)
Ist[++nr1]={-1.0*y/x,-1.0*yy/x};
else
Idr[++nr2]={1.0*y/x,1.0*yy/x};
}
sort(Ist+1,Ist+nr1+1);
sort(Idr+1,Idr+nr2+1);
dr=-1000000000.0;
for(i=1; i<=nr1; i++)
{
if(dr>=Ist[i].x)
dr=min(dr,Ist[i].y);
else
{
rez++;
dr=Ist[i].y;
}
}
dr=-1000000000.0;
for(i=1; i<=nr2; i++)
{
if(dr>=Idr[i].x)
dr=min(dr,Idr[i].y);
else
{
rez++;
dr=Idr[i].y;
}
}
fo<<rez<<"\n";
fi.close();
fo.close();
return 0;
}