POJ 3362 Protecting the Flowers

时间:2022-02-16 03:04:21

这题和金华区域赛A题(HDU 4442)是一样的做法。

对两个奶牛进行分析,选择两个奶牛总花费少的方式排序。

bool cmp(const X&a,const X&b)
{
  return a.t*b.d<b.t*a.d;
}

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; const int maxn=+;
struct X
{
long long t;
long long d;
} s[maxn];
int n; bool cmp(const X&a,const X&b)
{
return a.t*b.d<b.t*a.d;
} int main()
{
while(~scanf("%d",&n))
{
for(int i=; i<=n; i++) scanf("%lld%lld",&s[i].t,&s[i].d);
sort(s+,s++n,cmp);
long long ans=;
long long sum=*s[].t;
for(int i=; i<=n; i++)
{
ans=ans+s[i].d*sum;
sum=sum+*s[i].t;
}
printf("%lld\n",ans);
}
return ;
}