Advertisement
Guest User

Untitled

a guest
Apr 9th, 2022
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.26 KB | None | 0 0
  1.  
  2. // Write nodeour code here
  3. #include <bits/stdc++.h>
  4.  
  5. #include <ext/pb_ds/assoc_container.hpp>
  6. #include <ext/pb_ds/tree_policy.hpp>
  7. #define mp make_pair
  8. #define pb(a) push_back(a)
  9. #define pp pop_back()
  10. #define all(v) (v.begin(), v.end())
  11. #define alar (a + 1, a + 1 + n)
  12. #define ff first
  13. #define ss second
  14. #define sz(a) (int)(a.size())
  15. #define ffor(i, a, b) for (int i = a; i <= b; i++)
  16. #define rloop(i, c, d) for (int i = c; i >= d; i--)
  17. #define ll long long
  18. #define vc vector<ll>
  19. #define pii pair<ll, ll>
  20. #define mii map<ll, ll>
  21. #define mod 1000000007
  22. #define MAX 200005
  23. #define endl "\n"
  24. #define o(x) cout << x << endl
  25. using namespace std;
  26. using namespace __gnu_pbds;
  27. typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
  28. const int mod2 = 998244353;
  29. vector<bool> vis(MAX, false);
  30. vector<int> g[MAX];
  31. int maxi = 0;
  32.  
  33. void solve()
  34. {
  35. int n;
  36. cin >> n;
  37. vector<int>a;
  38. ll ev = 1;
  39. map<ll,int>m;
  40. for(int i=1;i<=n;i++)
  41. {
  42. {
  43. a.pb(ev);
  44. ev = ev * 2;
  45. m[ev]++;
  46. if (ev > 1000000000)
  47. break;
  48. }
  49. int con = 3;
  50. ffor(i, sz(a) + 1, n)
  51. {
  52. if (m[con] == 0)
  53. a.pb(con);
  54. else
  55. {
  56. con++;
  57. a.pb(con);
  58. }
  59. con++;
  60. }
  61. for (auto it : a)
  62. {
  63. cout << it << " ";
  64. }
  65. cout << endl;
  66. fflush(stdout);
  67.  
  68. int b[n + 1];
  69. for(int i=1;i<=n;i++)
  70.  
  71. cin >> b[i];
  72.  
  73. vector<ll> c;
  74.  
  75. for(int i=1;i<=n;i++)
  76. {
  77. c.pb(a[i - 1]);
  78. }
  79.  
  80. for(int i=1;i<=n;i++) c.pb(b[i]);
  81.  
  82.  
  83.  
  84. set<ll> st;
  85.  
  86. ll sum = 0;
  87. ffor(i, 0, sz(c) - 1)
  88. {
  89. st.insert(c[i]);
  90. sum += c[i];
  91. }
  92.  
  93. sum /= 2;
  94. // o(sum);
  95. vc ans;
  96. int val = 2 * n;
  97. while (sum > 0)
  98. {
  99. bool flag = false;
  100. int ind;
  101. for (auto it : st)
  102. {
  103. if (it <= sum)
  104. {
  105. flag = true;
  106. ind = it;
  107. }
  108. else
  109. break;
  110. }
  111. if (flag == false)
  112. break;
  113. sum = sum - ind;
  114.  
  115. ans.pb(ind);
  116. st.erase(ind);
  117. val--;
  118. if (sum < 0)
  119. break;
  120. }
  121. for (auto it : ans)
  122. cout << it << " ";
  123. cout << endl;
  124. fflush(stdout);
  125.  
  126. }
  127. // 2 4 6 8
  128.  
  129. int main()
  130. {
  131. ios_base::sync_with_stdio(false);
  132. cin.tie(NULL);
  133. cout.tie(NULL);
  134. int t;
  135. cin >> t;
  136. ffor(l, 1, t)
  137. {
  138. // cout << "Case #" << l << ":"
  139. // << " ";
  140. solve();
  141. }
  142. return 0;
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement