#include <iostream>
#include <algorithm>
using namespace std;
const int M =101000;
typedef struct{
int x;
int y;
double k;
}P;
P p[M];
bool cmp(P a,P b)
{
return a.k>b.k;
}
int main()
{
long long sum=0;
int n;
cin>>n;
for(int i=0;i<n;i++) // transport一只cow 损失 (2*xi)*(sum-yi) (i=0~n-1)
{ // 贪心 每次都使损失最小 -> xi尽量小 yi尽量大
cin>>p[i].x>>p[i].y; // -> yi/xi尽量大
p[i].k=(1.0*p[i].y)/p[i].x;
sum+=p[i].y;
}
sort(p,p+n,cmp);
long long ans=0;
for(int i=0;i<n;i++)
{
sum-=p[i].y;
ans+=p[i].x*2*sum;
}
cout<<ans<<endl;
return 0;
}
poj 3262 贪心比率
最新推荐文章于 2018-12-03 20:05:00 发布