CF1833B
Scrolling_Ball · · 题解
很显然,
想要达到最优解,最简单的办法不就是两个数组排序然后找一下
上代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 100005;
int t, n, k;
struct node
{
int id, x;
}a[N];
int b[N], c[N];
bool cmp(node x, node y)
{
return x.x < y.x;
}
int main()
{
cin >> t;
while(t -- )
{
cin >> n >> k;
for(int i = 1; i <= n; i ++ )
{
scanf("%d", &a[i].x);
a[i].id = i;
}
for(int i = 1; i <= n; i ++ )
scanf("%d", &b[i]);
sort(a + 1, a + n + 1, cmp);
sort(b + 1, b + n + 1);
for(int i = 1; i <= n; i ++ )
c[a[i].id] = b[i];
for(int i = 1; i <= n; i ++ )
cout << c[i] << " ";
puts("");
}
return 0;
}