6.3w+
社区成员
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <search.h>
using namespace std;
bool cmp ( const double a , const double b )
{
return b<a;
}
int main()
{
int num;
scanf("%d",&num);
while(num--)
{
int n,k;
scanf("%d%d",&n,&k);
vector<int>a;
for(int i=0;i<n;i++)
{
double xx;
scanf("%lf",&xx);
a.push_back(xx);
}
vector<int>b;
for(int i=0;i<n;i++)
{
double xx;
scanf("%lf",&xx);
b.push_back(xx);
}
sort(a.begin(),a.end(),cmp);
sort(b.begin(),b.end(),cmp);
double max=b[0]*a[0];
int kth=(k+1)/3;
if(k==kth*3-1&&k>1)
max=a[kth]*b[kth-1]>=a[kth-1]*b[kth]?a[kth]*b[kth-1]:a[kth-1]*b[kth];
if(k==kth*3&&k>1)
max=a[kth]*b[kth-1]<a[kth-1]*b[kth]?a[kth]*b[kth-1]:a[kth-1]*b[kth];
if(k==kth*3+1&&k>1)
max=a[kth]*b[kth];
printf("%.0lf\n",max);
}
return 0;
}