| 比赛 |
NOIP2025模拟赛4 |
评测结果 |
AAAAAAAAAAAAAAAA |
| 题目名称 |
Lunch Concert |
最终得分 |
100 |
| 用户昵称 |
会挽弯弓满月 |
运行时间 |
1.198 s |
| 代码语言 |
C++ |
内存使用 |
6.13 MiB |
| 提交时间 |
2025-11-27 11:05:15 |
显示代码纯文本
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const int N=2e5+10;
int n;
ll p[N],w[N],d[N];
ll ans;
ll solve(ll x){
ll res=0;
for(int i=1;i<=n;i++){
if(p[i]-d[i]>x) res+=w[i]*(p[i]-d[i]-x);
if(p[i]+d[i]<x) res+=w[i]*(x-p[i]-d[i]);
}
return res;
}
int main(){
freopen("Concert.in","r",stdin);
freopen("Concert.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%lld%lld%lld",&p[i],&w[i],&d[i]);
ll l=-1e9,r=1e9,lmid,rmid;
ll lans,rans;
ans=1e18;
while(l<=r){
lmid=(2*l+r)/3;
rmid=(l+2*r)/3;
lans=solve(lmid);
rans=solve(rmid);
if(lans<=rans){
ans=min(ans,lans);
r=rmid-1;
}
else{
ans=min(ans,rans);
l=lmid+1;
}
}
printf("%lld",ans);
return 0;
}