#include #include #include using namespace std; int main() { int N; cin >> N; vector p(N - 1); for (int i = 0; i < N - 1; ++i) { cout << "? " << i << " " << N - 1 << endl; cin >> p[i]; if (p[i] == -1) return 0; } // Thêm câu hỏi thứ N để phân biệt int p_extra; cout << "? 0 1" << endl; cin >> p_extra; vector candidates; for (int d_last = 1; d_last <= 9; ++d_last) { vector current_d(N); current_d[N - 1] = d_last; bool possible = true; for (int i = 0; i < N - 1; ++i) { if (p[i] % d_last != 0 || p[i] / d_last > 9) { possible = false; break; } current_d[i] = p[i] / d_last; } if (possible) { // Kiểm tra với câu hỏi phụ if (current_d[0] * current_d[1] == p_extra) { string s = ""; for (int i = N - 1; i >= 0; --i) s += to_string(current_d[i]); candidates.push_back(s); } } } if (candidates.size() == 1) { cout << "! " << candidates[0] << endl; } else { cout << "! -1" << endl; } return 0; }