rt,编译失败的信息是一堆我看不懂的东西,代码如下:(题目:P3475)
#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;
}