CF 734C

题目:

太长不翻译。。

现在题面都这么长的吗!!

艰难地读完题后发现是水题 == 

题解:

枚举一个数组,二分另一个数组(毕竟题目都加粗非递减了)。

记得long long 1ll<<63-1 . 1e18+1都会WA。

#include<iostream>
#include<algorithm>
using namespace std;

long long a[201000];
long long b[201000];
long long c[201000];
long long d[201000];

int main(){
    long long n,m,k;
    cin>>n>>m>>k;
    cin>>b[0];
    long long s;
    cin>>s;
    for(long long i=1;i<=m;i++) cin>>b[i];
    for(long long i=1;i<=m;i++) cin>>a[i];
    for(long long i=1;i<=k;i++) cin>>d[i];
    for(long long i=1;i<=k;i++) cin>>c[i];
    sort(d,d+k+1);
    sort(c,c+k+1);
    long long minn=1ll<<63-1;
    for(long long i=0;i<=m;i++){
        long long maxc=s-a[i];
        if(maxc<0) continue;
        long long bitc=upper_bound(c,c+k+1,maxc)-c-1;
        if(bitc==-1) minn=min(minn, n*b[i]);
        else  minn=min(minn,(n-d[bitc])*b[i]);
    }
    cout<<minn<<endl;
}

猜你喜欢

转载自blog.csdn.net/mengwuyaaa/article/details/79964879
今日推荐