n;c[3];
double d[3][5000],a,b;
i;j;k;p;
r;
double e=5e-11;

int	dblcmp(void*a,void*b){
	if(*(double*)a<*(double*)b){
		return -1;
	}
	if(*(double*)a>*(double*)b){
		return 1;
	}
	return 0;
}

main(){
	scanf("%d",&n);
	r=n+1;
	for(i=0;i<n;++i){
		scanf("%d%lf%lf",&p,&a,&b);
		d[p][c[p]++]=a/(a+b);
	}
	for(i=0;i<c[0];++i){
		for(j=0;j<c[1];++j){
			if(d[0][i]+d[1][j]>1+e){
				++r;
			}
		}
	}
	for(i=0;i<c[0];++i){
		for(j=0;j<c[2];++j){
			if(d[0][i]+d[2][j]>1+e){
				++r;
			}
		}
	}
	for(i=0;i<c[1];++i){
		for(j=0;j<c[2];++j){
			if(d[1][i]+d[2][j]>1+e){
				++r;
			}
		}
	}

	qsort(d[1],c[1],sizeof(double),dblcmp);
	qsort(d[2],c[2],sizeof(double),dblcmp);
	
	for(i=0;i<c[0];++i){
		double d0=d[0][i];
		j=0;
		k=c[2]-1;
		while(j<c[1] && k>=0){
			double d1=d[1][j];
			double d2=d[2][k];
			if(d0+d1>1-e && d0+d2>1-e && d1+d2>1-e && fabs(d0+d1+d2-2)>e){
				r+=j+1;
			}
			if(d1+d2<1){
				++j;
			}else{
				--k;
			}
		}
	}
	printf("%d",r);
	return 0;
}