思路:
1、将母牛排序(排序的方法没怎么看懂)
2、遍历,计算(注意不能两重循环,否则会超时)
问题:
排序的方法不是很理解
#include <cstdio>
#include <cstring>
#include <stack>
#include <queue>
#include <algorithm>
#include<iostream>
#include<map>
#include<set>
#include<math.h>
using namespace std;
#define MAX_A 10000
struct cow{
int t;
int d;
};
int cmp(cow a,cow b){
return a.d*b.t>b.d*a.t;
}
int main(){
int n;
scanf("%d",&n);
cow cows[n];
int i;
for(i=0;i<n;i++){
scanf("%d %d",&cows[i].t,&cows[i].d);
}
sort(cows,cows+n,cmp);
long long sumt = 0;
long long sumd = 0;
for(i=0;i<n;i++){
sumd += cows[i].d*sumt;
sumt += cows[i].t*2;
}
printf("%lld\n",sumd);
return 0;
}