Pagini recente » Cod sursa (job #1250461) | Cod sursa (job #2069388) | Cod sursa (job #1566832) | Cod sursa (job #960200) | Cod sursa (job #1493271)
#include<cstdio>
#include<algorithm>
using namespace std;
struct pct{
long long x;
long long y;
long long z;
}v[200100],x[200100],y[200100];
long long n,n1,n2,i,j,nr;
FILE *f,*g;
void chg(long long &a,long long &b){
long long aux=a;
a=b;
b=aux;
}
long long cmp(pct a,pct b){
return a.z*b.x<a.x*b.z;
}
void sol(long long n,pct v[]){
long long i,j,a,b;
if(!n)
return;
sort(v+1,v+n+1,cmp);
a=v[1].x;
b=v[1].z;
nr++;
for(i=1;i<=n;i++){
if( v[i].x*b < v[i].y*a ){
nr++;
a=v[i].x;
b=v[i].z;
}
}
}
int main(){
f=fopen("rays.in","r");
g=fopen("rays.out","w");
fscanf(f,"%lld",&n);
for(i=1;i<=n;i++){
fscanf(f,"%lld%lld%lld",&v[i].x,&v[i].y,&v[i].z);
if(v[i].y>v[i].z)
chg(v[i].y,v[i].z);
if(v[i].x<0){
v[i].x=-v[i].x;
x[++n1]=v[i];
}
else
y[++n2]=v[i];
}
sol(n1,x);
sol(n2,y);
fprintf(g,"%lld",nr);
fclose(f);
fclose(g);
return 0;
}