Pagini recente » Cod sursa (job #2549224) | Cod sursa (job #235699) | Cod sursa (job #2471173) | Cod sursa (job #283123) | Cod sursa (job #1493266)
#include<cstdio>
#include<algorithm>
using namespace std;
struct pct{
int x;
int y;
int z;
}v[200100],x[200100],y[200100];
int n,n1,n2,i,j,nr;
FILE *f,*g;
void chg(int &a,int &b){
int aux=a;
a=b;
b=aux;
}
int cmp(pct a,pct b){
return a.z*b.x<a.x*b.z;
}
void sol(int n,pct v[]){
int 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,"%d",&n);
for(i=1;i<=n;i++){
fscanf(f,"%d%d%d",&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,"%d",nr);
fclose(f);
fclose(g);
return 0;
}