HDU 4310 Contest 2
贪心,注意排序条件。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N=25;
struct En{
int DSP,HP;
}E[N];
bool cmp(En a,En b){
if(a.DSP*1.0/a.HP>b.DSP*1.0/b.HP)
return true;
return false;
}
int main(){
int n;__int64 ans,np;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++)
scanf("%d%d",&E[i].DSP,&E[i].HP);
sort(E,E+n,cmp);
ans=np=0;
for(int i=0;i<n;i++){
np+=(__int64)E[i].HP;
ans+=(np)*(__int64)E[i].DSP;
}
printf("%I64d\n",ans);
}
return 0;
}

浙公网安备 33010602011771号