到底哪里错了???
#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;
}