Pagini recente » Cod sursa (job #2082815) | Cod sursa (job #46324) | Cod sursa (job #208108) | Cod sursa (job #2517336) | Cod sursa (job #2557836)
#include <vector>
#include <fstream>
#include <iostream>
#include <cmath>
#include <map>
#include <algorithm>
#define ull unsigned long long int
#define error 0.000001
using namespace std;
ifstream f("rays.in");
ofstream g("rays.out");
int n;
vector<pair<double,int> > cadran1;
vector<pair <double, int> >cadran2;
int cnt1,cnt2;
int solve(vector<pair< double,int> > cadran)
{
sort(cadran.begin(),cadran.end());
int cnt=0,sol=0;
for(int i=0;i<cadran.size();i++)
{
cnt=cnt+cadran[i].second;
if(cnt==0)
{
sol++;
}
}
return sol;
}
int main()
{
f>>n;
for(int i=1; i<=n; i++)
{
int x,y,y1;
f>>x>>y>>y1;
if(x<0)
{
double unghi1=double (1.0*y/-x);
double unghi2=double(1.0*y1/-x);
if(unghi1>unghi2) swap(unghi1,unghi2);
cadran2.push_back (make_pair(unghi1,1));
cadran2.push_back (make_pair(unghi2+error,-1));
}
else
{
double unghi1=double (1.0*y/x);
double unghi2=double(1.0*y1/x);
if(unghi1>unghi2) swap(unghi1,unghi2);
cadran1.push_back (make_pair (unghi1,1));
cadran1.push_back (make_pair(unghi2+error,-1));
}
}
g<<solve(cadran1)+solve(cadran2);
}