比赛 NOIP2025模拟赛4 评测结果 AAAAAAAAAAAAAAAA
题目名称 Lunch Concert 最终得分 100
用户昵称 郑霁桓 运行时间 3.078 s
代码语言 C++ 内存使用 39.52 MiB
提交时间 2025-11-27 09:08:14
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,m,p,ps,ss;
__int128 ft[600005],bk[600005],b[600005],as;
struct pr{
	long long p,w,d;
}a[200005];
vector<long long>t[600005];
inline bool c(pr x,pr y){
	return x.p<y.p;
}
int main(){
	freopen("Concert.in","r",stdin);
	freopen("Concert.out","w",stdout);
	ios::sync_with_stdio(false);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].p>>a[i].w>>a[i].d;
		b[++m]=a[i].p-a[i].d;
		b[++m]=a[i].p;
		b[++m]=a[i].p+a[i].d;
	}
	sort(a+1,a+n+1,c);
	sort(b+1,b+m+1);
	for(int i=1;i<=n;i++){
		p=lower_bound(b+1,b+m+1,a[i].p+a[i].d)-b;
		t[p].push_back(i);
		p=lower_bound(b+1,b+m+1,a[i].p-a[i].d)-b;
		t[p].push_back(-i);
	}
	for(int i=1;i<=m;i++){
		ft[i]=ft[i-1]+ps*(b[i]-b[i-1]);
		for(int j=0;j<t[i].size();j++){
			if(t[i][j]>0||(t[i][j]<0&&!a[-t[i][j]].d)) ps+=a[t[i][j]].w;
		}
	}
	ps=0;
	b[m+1]=b[m];
	for(int i=m;i>=1;i--){
		bk[i]=bk[i+1]+ps*(b[i+1]-b[i]);
		for(int j=0;j<t[i].size();j++){
			if(t[i][j]<0) ps+=a[-t[i][j]].w;
		}
	}
	as=1e28;
	for(int i=1;i<=m;i++) as=min(as,ft[i]+bk[i]);
    ss=as;
	cout<<ss;
    return 0;
}