#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+5;
int n;
struct node{
int x,y,v,sign;
double k;
}a[maxn];
bool cmp(node a,node b){
if(a.k==b.k&&a.sign==b.sign){
if(a.x>0) return a.x<b.x;
return a.x>b.x;
}
else if(a.k==b.k)
return a.sign>b.sign;
else return a.k>b.k;
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].v);
a[i].k=a[i].x*1.0/a[i].y;
a[i].sign=(a[i].x>0)?1:-1;
}
sort(a,a+n,cmp);
ll sum=0;int num=0,i=0;
while(i<n){
int tt=0,f=0;
//不是同一个k
if(!(a[i].k==a[i-1].k&&a[i].sign==a[i-1].sign)){
while(1){
if(!(a[i].k==a[i-1].k&&a[i].sign==a[i-1].sign)&&f)break;
tt++;f=1;
int cur=a[i++].v;
if(cur>1){
sum+=cur,num++;
sum+=(tt-1);
if(tt-1) num++;
tt=0;
}
}
}
if(tt){
sum+=tt;
num+=1;
}
}
printf("%lld %d",sum,num);
}
rb2。。。。。
猜你喜欢
转载自blog.csdn.net/weixin_50904510/article/details/120731945
今日推荐
周排行