70 分求调
查看原帖
70 分求调
922727
ZhouYuXuanAllen楼主2023/10/29 18:30
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct qwq{int a, b;}a[500005];
bool cmp(qwq a, qwq b){return a.b < b.b;}
int sumb[500005], premin[500005] = {1e18}, sufmin[500005];
signed main(){
	int n; cin >> n; sufmin[n + 1] = 1e18;
	for (int i = 1;i <= n;i++) cin >> a[i].a >> a[i].b;
	sort(a + 1, a + n + 1, cmp);
	for (int i = 1;i <= n;i++) sumb[i] = sumb[i - 1] + a[i].b;
	for (int i = 1;i <= n;i++) premin[i] = min(premin[i - 1], a[i].b - a[i].a);
	for (int i = n;i >= 1;i--) sufmin[i] = min(sufmin[i + 1], a[i].a);
	for (int k = 1;k <= n;k++){
		int s1 = sumb[k - 1], s2 = sumb[k], min1 = sufmin[k], min2 = premin[k];
		cout << min(s1 + min1, s2 - min2) << endl; 
	}
}
2023/10/29 18:30
加载中...