鵝廠下午茶

 

     以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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章