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

#define ll long long
#define cpy(a,b) copy(begin(a),end(a),begin(b))
#define ld long double
#define dot(x) fixed<<setprecision(x)
#define foru(a,b,c) for(ll a=b;a<=c;a++)

ll n,p[200005],w[200005],d[200005],ans=LLONG_MAX;

ll ck(ll x){
    ll tmp=0;
    foru(i,1,n){
        if(p[i]+d[i]<x){
            tmp+=w[i]*(x-p[i]-d[i]);
        }
        if(p[i]-d[i]>x){
            tmp+=w[i]*(p[i]-d[i]-x);
        }
    }
    return tmp;
}

int main(){
    freopen("Concert.in" ,"r",stdin );
    freopen("Concert.out","w",stdout);
    cin>>n;
    foru(i,1,n){
        cin>>p[i]>>w[i]>>d[i];
    }
    ll l=-1e9,r=1e9;
    while(l<=r){
        ll lm=(l*2+r)/3,rm=(r*2+l)/3;
        ll la=ck(lm),ra=ck(rm);
        if(la<=ra){
            ans=min(ans,la),r=rm-1;
        }else{
            ans=min(ans,ra),l=lm+1;
        }
    }
    cout<<ans;
    return 0;
}