Description
Input
Output
Sample Input
Sample Output
#include <stdio.h>
#include <algorithm>
#include <iostream>
#include <string.h>
using namespace std;
struct p
{
  int dps;
  int hp;
}s[60];
bool cmp(p a,p b)
{
    return (double)a.dps/(double)a.hp>(double)b.dps/(double)b.hp;
}
int main()
{
    int j,n,m;
    int  sum;
    while (scanf("%d",&n)!=EOF)
    {   sum=0;m=0;
        memset(s,0,sizeof(s));
        for(int i=0;i<n;i++)
        scanf("%d %d",&s[i].dps,&s[i].hp);
        sort(s,s+n,cmp);
        if(n==1) { printf("%d\n",s[0].dps*s[0].hp); continue;}
        for(int i=0;i<n;i++)
       {
        m=0;
        m+=s[i].dps;
        for(j=i+1;j<n;j++)
        m+=s[j].dps;
        m*=s[i].hp;
        sum+=m;
       }
        printf("%d\n",sum);
    }
    return 0;
}
原文:http://www.cnblogs.com/llfj/p/5689667.html