Codeforces 1151D

私個人が値を生成する最初の立ち位置jがaiをするとき、nは個々があります*(J-1)+ BI(NJ)、J = 1,2、...、nは、 そのようアレンジする方法を依頼することn個の合計最小。
* J + - (BI AI)を与えるために、変形方程式バイ* nの-愛を、
見た誰もがBI * nの値を持つことになります- AI、この人の価値は独立の立場に立つために。
AIのBIが知られているが、問題は、貪欲の非常に馴染みの問題に変換されます

#include<bits/stdc++.h>
using namespace std;
#define forn(i,n) for(int i = 0;i<int(n);i++)
typedef long long LL;
int n;
int a[101010],b[101010],c[101010];
LL ans;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	//freopen("data.in","r",stdin);
	//freopen("data.out","w",stdout);
	cin>>n;
	for(int i = 0;i<n;i++) {
		cin>>a[i]>>b[i];
		ans += (LL)b[i] * n - a[i];
		c[i] = a[i] - b[i]; 
	}
	sort(c,c+n);
	for(int i = 0 ;i<n;i++){
		ans += (LL)c[n-1-i] * (i+1);
	}
	cout<<ans;
	return 0; 
} 

おすすめ

転載: blog.csdn.net/winhcc/article/details/89404256