HDU 4310 Hero

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4310

 

按比值排序:dps/hp...为了避免小数出现cmp函数写成相乘的形式

 

 

#include <iostream>

#include<algorithm>

using namespace std;



class hero

{

public:

    int hp;

    int dps;

};

//按dps/hp排序

bool cmp(hero a,hero b)

{

    return a.dps*b.hp>b.dps*a.hp;

}

int main()

{

    int n;

    int ans;

    int sum;

    hero data[25];

    while(cin>>n)

    {

        ans=0;

        sum=0;

        for(int i=0;i<n;i++)

        {

            cin>>data[i].dps>>data[i].hp;

            sum+=data[i].dps;

        }

        sort(data,data+n,cmp);

        for(int i=0;i<n;i++)

        {

            ans+=sum*data[i].hp;

            sum-=data[i].dps;

        }

        cout<<ans<<endl;



    }

    return 0;

}

你可能感兴趣的:(HDU)