Pagini recente » Cod sursa (job #1944584) | Cod sursa (job #1106777) | Cod sursa (job #2069793) | Cod sursa (job #2909042) | Cod sursa (job #2556063)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rays.in");
ofstream fout("rays.out");
#define PI 3.14159265359
int n;
struct lol{
double a;
int tip;
int id;
bool operator<(lol x){
return a<x.a||(a==x.a&&tip<x.tip);
}
};
vector<lol> v;
int main()
{
fin>>n;
int id=0;
unordered_set<int> m;
for(int i=1;i<=n;++i){
int x, y1, y2;
fin>>x>>y1>>y2;
double a=atan2(x, -y1);
if(a<0) a=2*PI+a;
double b=atan2(x, -y2);
if(b<0) b=2*PI+b;
if(a>b) swap(a, b);
v.push_back({a, 0, ++id});
v.push_back({b, 1, id});
}
sort(v.begin(), v.end());
int nr=0;
stack<int> todel;
for(auto i:v){
if(m.find(i.id)==m.end()){
if(i.tip==0){
todel.push(i.id);
}
else{
nr++;
while(!todel.empty()){
m.insert(todel.top());
todel.pop();
}
}
}
}
fout<<nr<<"\n";
return 0;
}