Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <iomanip>
  5. #include <sstream>
  6. #include <cstdio>
  7. #include <bitset>
  8. #include <vector>
  9. #include <queue>
  10. #include <cmath>
  11. #include <stack>
  12. #include <set>
  13. #include <map>
  14.  
  15. #define ft first
  16. #define sd second
  17. #define pb push_back
  18. #define pf push_front
  19. #define mk make_pair
  20. #define all(c) (c).begin(), (c).end()
  21. #define SWS ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
  22. #define rfile freopen("input.txt", "r", stdin)
  23. #define wfile freopen("output.txt", "w", stdout)
  24. #define files rfile; wfile
  25. #define DEBUG_VAR(x) #x << " = " << x << ";"
  26. #define DEBUG 1
  27.  
  28. typedef long long ll;
  29. typedef unsigned long long ull;
  30.  
  31. using namespace std;
  32.  
  33. const int Z = 3 * (int)1e5 + 111;
  34. const int INF = (int)1e9 + 111;
  35. const int MODF = (int)1e9 + 7;
  36.  
  37. int ask(int v, int l, int r) {
  38.   int x;
  39.   cout << 1 << ' ' << r - l + 1 - (v >= l && v <= r) << ' ' << v << ' ';
  40.   for (int i = l; i <= r; i++)
  41.     if (i != v)
  42.       cout << i << ' ';
  43.   cout << endl;
  44.   cin >> x;
  45.   return x;
  46. }
  47.  
  48. int ans, big;
  49.  
  50. void find(int v, int l, int r) {
  51.   if (r == l) {
  52.     ans = l;
  53.     return;
  54.   }
  55.   int mid = (l + r) / 2;
  56.   int left_ans = ask(v, l, mid);
  57.   if (left_ans == big) {
  58.     find(v, l, mid);
  59.     return;
  60.   }
  61.   find(v, mid + 1, r);
  62. }
  63.  
  64. int main() {
  65.   SWS;
  66.   int t;
  67.   cin >> t;
  68.   while (t--) {
  69.     int n;
  70.     cin >> n;
  71.     ans = 0;
  72.     big = ask(1, 2, n);
  73.     find(1, 2, n);
  74.     cout << "-1 " << ask(ans, 1, n) << endl;
  75.   }  
  76.  
  77.   return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement