比赛 NOIP2025模拟赛4 评测结果 AAAAAAAAAAAAAAAA
题目名称 Lunch Concert 最终得分 100
用户昵称 梦那边的美好ME 运行时间 1.313 s
代码语言 C++ 内存使用 6.00 MiB
提交时间 2025-11-27 09:05:31
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define ll long long

struct node{
    ll p,w,d;
}a[210000];

ll n,ans=1e18;
ll mn,mx,md;


ll solve(ll c){
	ll res=0;
	for (int i=0;i<n;i++){
		ll x=abs(a[i].p-c);
		if(x>a[i].d) res+=(x-a[i].d)*a[i].w;
	}
	return res;
}

int main(){
    freopen("Concert.in","r",stdin);
    freopen("Concert.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>n;
	mn=1e18;mx=-1e18;md=0;
	for (int i=0;i<n;i++){
		cin>>a[i].p>>a[i].w>>a[i].d;
		mn=min(mn,a[i].p);
		mx=max(mx,a[i].p);
		md=max(md,a[i].d);
	}
	ll l=mn-md,r=mx+md;
	while (r-l>3){
		ll mid1=l+(r-l)/3;
		ll mid2=r-(r-l)/3;
		ll t1=solve(mid1);
        ll t2=solve(mid2);
		if (t1<t2) r=mid2-1;
		else l=mid1+1;
	}
	for (ll c=l;c<=r;c++){
        ans=min(ans,solve(c));
    }
	cout<<ans<<"\n";
	return 0;
}