WA on #2 求调
  • 板块CF2051E Best Price
  • 楼主c_legg
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/16 18:51
  • 上次更新2025/1/16 22:04:33
查看原帖
WA on #2 求调
1054383
c_legg楼主2025/1/16 18:51

到底哪里错了???

#include <bits/stdc++.h>
#define ll long long
using namespace std;

ll t, n, k, ans;
ll a[1145141], b[1145141];

ll cal(ll pri) {
    ll ret=0, bad=0;
    for(ll i=0; i<n; i++) {
        if(pri<=a[i]) ret++;
        else if(pri<=b[i]) {ret++; bad++; }
    }
    if(bad>k) return 1e18;
    else return ret*pri;
}

int main() {
    cin>>t;
    while(t--) {
        ll maxp=0, minp=1e18;
        cin>>n>>k;
        ans=-1;
        for(ll i=0; i<n; i++) {
            cin>>a[i];
            minp=min(minp, a[i]);
        }
        for(ll i=0; i<n; i++) {
            cin>>b[i];
            maxp=max(maxp, b[i]);
        }

        ll l=minp-1, r=maxp+1;
        while(l+1<r) {
            ll mid=(l+r)/2;
            ll mak=cal(mid);
            if(mak<ans) {
                l=mid;
            }else if(mak<1e18){
                ans=mak;
                l=mid;
            }else {
                r=mid;
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}
2025/1/16 18:51
加载中...