Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- /* run this program using the console pauser or add your own getch, system("pause") or input loop */
- void Print(int l, int r){
- for (int i = l; i <= r; ++i)
- cout << " " << i;
- cout << endl;
- }
- void PrintExcept(int l, int r, int exc){
- for (int i = l; i <= r; ++i){
- if (i != exc)
- cout << " " << i;
- }
- cout << endl;
- }
- int main(int argc, char** argv) {
- int n_t, n;
- int l, r, f;
- int curr1, curr2, Max;
- cin >> n_t;
- for (int i = 0; i < n_t; ++i){
- cin >> n;
- l = 2;
- r = n;
- f = r;
- cout << "1 " << (n - 1) << " 1";
- Print(l, r);
- cin >> Max; if (Max == -1) return 0;
- //r = n/2 + 1;
- while (l != r){
- f = r;
- cout << l << " " << r << "\n";
- cout << "1 " << (r - l)/2 + 1 << " 1";
- Print(l, (r - l)/2 + l);
- cin >> curr1; if (curr1 == -1) return 0;
- if (curr1 < Max){
- l = (r - l)/2 + l + 1;
- r = n;
- }else
- r = (r - l)/2 + l;
- if (curr1 > Max) Max = curr1;
- }
- cout << "1 " << (n - 1) << " " << f;
- PrintExcept(1, n, f);
- cin >> curr1; if (curr1 == -1) return 0;
- cout << "-1 " << max (curr1, Max) << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement