Advertisement
Guest User

Untitled

a guest
Oct 27th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cmath>
  4. #include <vector>
  5. #include <ctime>
  6. #include <map>
  7. #include <set>
  8. #include <string>
  9. #include <queue>
  10. #include <deque>
  11. #include <cassert>
  12. #include <cstdlib>
  13. #include <bitset>
  14. #include <algorithm>
  15. #include <string>
  16. #include <list>
  17. #include <fstream>
  18. #include <cstring>
  19. #include <climits>
  20. #include <stack>
  21. #include <random>
  22.  
  23. using namespace std;
  24.  
  25. typedef long long ll;
  26. typedef unsigned long long ull;
  27.  
  28. #define pk push_back
  29. #define mk make_pair ΠΉ
  30. #define all(v) v.begin(), v.end()
  31. #define X first
  32. #define Y second
  33. #define TASK "changestr"
  34.  
  35. const double EPS = 1e-9;
  36. const double pi = acos(-1.0);
  37.  
  38. const ll MAXN = (ll)2e6 + 7;
  39. const ll INF = (ll)1e9 + 7;
  40. const ll MOD = (ll)2000000033;
  41. const ll P = 239017;
  42. const ll SZ = (ll)1e5;
  43.  
  44. int cnt[50005];
  45.  
  46. int main()
  47. {
  48. int t;
  49. scanf("%d", &t);
  50. for (int kaka = 0; kaka < t; kaka++)
  51. {
  52. vector<pair<int, int>> a;
  53. vector<pair<int, int>> b;
  54. int n;
  55. scanf("%d", &n);
  56. for (int i = 0; i <= n; i++)
  57. cnt[i] = -1;
  58. for (int i = 0; i < n; i++)
  59. {
  60. int x;
  61. scanf("%d", &x);
  62. a.push_back({x, i});
  63. }
  64. for (int i = 0; i < n; i++)
  65. {
  66. int x;
  67. scanf("%d", &x);
  68. b.push_back({x, i});
  69. }
  70. sort(all(a));
  71. sort(all(b));
  72. bool f = true;
  73. for (int i = 0; i < n / 2; i++)
  74. if (a[i].X >= a[n - i - 1].X)
  75. {
  76. printf("-1\n");
  77. f = false;
  78. break;
  79. }
  80. else
  81. cnt[a[i].Y] = a[n - i - 1].Y;
  82. if (!f)
  83. continue;
  84. f = true;
  85. for (int i = n / 2; i < n; i++)
  86. {
  87. if (a[i].X <= a[n - i - 1].X)
  88. {
  89. printf("-1\n");
  90. f = false;
  91. break;
  92. }
  93. else
  94. cnt[a[i].Y] = a[n - i - 1].Y;
  95. }
  96. if (!f)
  97. continue;
  98. for (int i = 0; i < n; i++)
  99. printf("%d ", cnt[i] + 1);
  100. printf("\n");
  101.  
  102. }
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement