#include #include #include #include #include #include #include #include using namespace std; #define ll long long int #define tiii tuple int main() { bool memo[10]; for(int i = 0;i < 10;i++) { memo[i] = false; } cout << "0 1 2 3" << endl; int f, s; cin >> f >> s; if(f == 4) { return 0; } int initial = f + s; int current = initial; for(int i = 4;i < 10;i++) { cout << "0 1 2 " << i << endl; cin >> f >> s; if(f == 4) { return 0; } if(current < f + s) { memo[i] = true; break; } else if(current > f + s) { memo[3] = true; break; } } current = initial; for(int i = 4;i < 10;i++) { if(memo[i]) { continue; } cout << "0 1 3 " << i << endl; cin >> f >> s; if(f == 4) { return 0; } if(current < f + s) { memo[i] = true; break; } else if(current > f + s) { memo[2] = true; break; } } current = initial; for(int i = 4;i < 10;i++) { if(memo[i]) { continue; } cout << "0 2 3 " << i << endl; cin >> f >> s; if(f == 4) { return 0; } if(current < f + s) { memo[i] = true; break; } else if(current > f + s) { memo[1] = true; break; } } current = initial; for(int i = 4;i < 10;i++) { if(memo[i]) { continue; } cout << "1 2 3 " << i << endl; cin >> f >> s; if(f == 4) { return 0; } if(current < f + s) { memo[i] = true; break; } else if(current > f + s) { memo[0] = true; break; } } vector vs; for(int i = 0;i < 10;i++) { if(memo[i]) { vs.push_back(i); } } for(int i = 0;i < 4;i++) { cout << vs[i] << " "; } cout << endl; cin >> f >> s; if(f == 4) { return 0; } while(next_permutation(vs.begin(),vs.end())) { for(int i = 0;i < 4;i++) { cout << vs[i] << " "; } cout << endl; cin >> f >> s; if(f == 4) { return 0; } } return 0; }