Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <cmath>
- #include <vector>
- #include <ctime>
- #include <map>
- #include <set>
- #include <string>
- #include <queue>
- #include <deque>
- #include <cassert>
- #include <cstdlib>
- #include <bitset>
- #include <algorithm>
- #include <string>
- #include <list>
- #include <fstream>
- #include <cstring>
- #include <climits>
- #include <stack>
- #include <random>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- #define pk push_back
- #define mk make_pair ΠΉ
- #define all(v) v.begin(), v.end()
- #define X first
- #define Y second
- #define TASK "changestr"
- const double EPS = 1e-9;
- const double pi = acos(-1.0);
- const ll MAXN = (ll)2e6 + 7;
- const ll INF = (ll)1e9 + 7;
- const ll MOD = (ll)2000000033;
- const ll P = 239017;
- const ll SZ = (ll)1e5;
- int cnt[50005];
- int main()
- {
- int t;
- scanf("%d", &t);
- for (int kaka = 0; kaka < t; kaka++)
- {
- vector<pair<int, int>> a;
- vector<pair<int, int>> b;
- int n;
- scanf("%d", &n);
- for (int i = 0; i <= n; i++)
- cnt[i] = -1;
- for (int i = 0; i < n; i++)
- {
- int x;
- scanf("%d", &x);
- a.push_back({x, i});
- }
- for (int i = 0; i < n; i++)
- {
- int x;
- scanf("%d", &x);
- b.push_back({x, i});
- }
- sort(all(a));
- sort(all(b));
- bool f = true;
- for (int i = 0; i < n / 2; i++)
- if (a[i].X >= a[n - i - 1].X)
- {
- printf("-1\n");
- f = false;
- break;
- }
- else
- cnt[a[i].Y] = a[n - i - 1].Y;
- if (!f)
- continue;
- f = true;
- for (int i = n / 2; i < n; i++)
- {
- if (a[i].X <= a[n - i - 1].X)
- {
- printf("-1\n");
- f = false;
- break;
- }
- else
- cnt[a[i].Y] = a[n - i - 1].Y;
- }
- if (!f)
- continue;
- for (int i = 0; i < n; i++)
- printf("%d ", cnt[i] + 1);
- printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement