为什么CE
查看原帖
为什么CE
1155645
_just_a_OIer_LsQ_楼主2024/7/11 17:19

rt,编译失败,详细信息根本看不懂,不知道为啥

#include<bits/stdc++.h>
using namespace std;
int t[1000010],lol[1000010];
int m,n;
long long a,b,c,ans;
long long doit(long long p){
    long long x=0,y=0;
    for(int i=1;i<=m;i++){
        if(lol[i]<p) x+=p-lol[i];
        else y+=lol[i]-p;
    }
    return a<b?min(x,y)*a+(y-min(x,y))*b:y*b;
}
long long tot(long long p){
    long long sum=0;
    for(int i=1;i<=n;i++) if(t[i]<p) sum+=(p-t[i])*c;
    return sum;
}
int main(){
    cin>>a>>b>>c>>n>>m;
    for(int i=1;i<=n;i++) cin>>t[i];
    for(int i=1;i<=m;i++) cin>>lol[i];
    sort(b+1,b+m+1);
    sort(t+1,t+n+1);
    if(c>=1e16){
        cout<<doit(t[1]);
        return 0;
    }
    ans=1e16;
    int l=1,r=n;
    while(r-l>1){
        int mid1=l+(r-l)/3,mid2=r-(r-l)/3;
        long long un1=doit(mid1)+tot(mid1),un2=doit(mid2)+tot(mid2);
        if(un1<=un2) r=mid2;
        else l=mid1;
    }
    for(int i=l;i<=r;i++){
        long long un=doit(i)+tot(i);
        ans=min(ans,un);
    }
    cout<<ans;
}
2024/7/11 17:19
加载中...