Pagini recente » Cod sursa (job #1520910) | Cod sursa (job #3132789) | Cod sursa (job #1400074) | Cod sursa (job #2314354) | Cod sursa (job #2207221)
#include <fstream>
#include <algorithm>
#include <math.h>
#include <vector>
using namespace std;
ifstream fin ("rays.in");
ofstream fout("rays.out");
int i,n,x,y,y2,r,d,ndr,nst;
double a,b;
pair<double,double> dr[200001], st[200001];
int mod(int val){if(val<0)return -val; else return val;}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x>>y>>y2;
if(y>y2)
swap(y2, y);
if(x>0)
dr[++ndr]=make_pair(1.0*y/x, 1.0*y2/x);
else
st[++nst]=make_pair(1.0*y/mod(x), 1.0*y2/mod(x));
}
sort(dr+1, dr+ndr+1);
b=-10000000;
for(i=1;i<=ndr;i++)
{
if(dr[i].first>b)
{
b=dr[i].second;
r++;
}
else
b=min(b, dr[i].second);
}
sort(st+1, st+1+nst);
b=-10000000;
for(i=1;i<=nst;i++)
{
if(st[i].first>b)
{
b=st[i].second;
d++;
}
else
b=min(b,st[i].second);
}
fout<<r+d;
fin.close();
fout.close();
return 0;
}