鹅厂下午茶

 

     以ai - bi的值作为排序,差值越大说明放在前面的性价比就越高,值得注意的是测试用例比较刁钻,结果和a,b定义为int类型是无法通过的,改成long long 类型就AC了。

#include <map>  
#include <cmath>  
#include <queue>  
#include <cstdio>  
#include <string>  
#include <cstring>  
#include <iostream>  
#include <algorithm> 
#include <sstream> 
#include <time.h> 
#include <vector>
#include <list>
#include<iomanip>
#include<time.h>  

#define N_MAX 205
#define INF (0x3f3f3f3f)

using namespace std;
struct SS
{
	long long a, b;
	bool operator <(const SS& s)const
	{
		if (a - b == s.a - s.b)
			return a < s.a;		//最小堆
		else
			return (a - b) < (s.a - s.b);			//最大堆
	}
};
priority_queue<SS> Data;
int main()
{
	int N;
	cin >> N;
	long long  A, B;
	for (int i = 0; i < N; ++i)
	{
		SS save;
		cin >> save.a >> save.b;
		Data.push(save);
	}
	long long sum = 0;
	for (int i = 1; i <= N; ++i)
	{
		sum += Data.top().a * (i - 1) + Data.top().b * (N - i);
		Data.pop();
	}
	cout << sum;
	return 0;
}

发布了104 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Yanpr919/article/details/100188661
今日推荐