#include using namespace std; int ask(int x, int y, int z) { int d; cout << "?" << " " << x << " " << y << " " << z << endl; cin >> d; return d; } void answer(int x, int y, int z) { cout << "!" << " " << x << " " << y << " " << z << endl; } int bsearch(int i){ int min = -150; int max = 149; int mid = 0; int a[3][2] = {}; int d; while(min != mid){ a[i][0] = mid; a[i][1] = mid+1; d = ask(a[0][0],a[1][0],a[2][0]); d -= ask(a[0][1],a[1][1],a[2][1]); if(d > 0) max = mid; else min = mid; mid = (max+min)/2; } return a[i][1]; } int main(void) { int ans[3] = {}; int min,max,mid; for(int i=0;i<3;i++) ans[i] = bsearch(i); answer(ans[0],ans[1],ans[2]); return 0; }