| 比赛 |
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;
}