#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; vector> vec; int main() { cout << "? 0 0" << endl; int d, d1; cin >> d; int x1, y1; bool bo = true; for (int i = 0; i <= 100; i++) { for (int j = 0; j <= 100; j++) { if (i * i + j * j == d) { if (bo) { x1 = i, y1 = j; cout << "? " << i << " " << j << endl; cin >> d1; bo = false; } vec.emplace_back(make_pair(i, j)); } } } for (int i = 0; i < vec.size(); i++) { int x = vec[i].first, y = vec[i].second; if ((x - x1) * (x - x1) + (y - y1) * (y - y1) == d1) { cout << "! " << x << " " << y << endl; return 0; } } return 0; }