#include #include bool query(int i, int x, int j, int y) { std::cout << "? " << i << ' ' << x << ' ' << j << ' ' << y << '\n', std::cout.flush(); std::string response; std::cin >> response; if (response == "Yes") { return true; } else if (response == "No") { return false; } else { exit(1); } } void output_answer(int n, int i, int j, int k) { std::cout << "!"; for (int t = 0; t < n; ++t) std::cout << ' ' << i << ' ' << k; for (int t = 0; t < n; ++t) std::cout << ' ' << j << ' ' << k; for (int t = 0; t <= n; ++t) std::cout << ' ' << i << ' ' << j; std::cout << '\n', std::cout.flush(); } int main() { int n; std::cin >> n; int i, j, k; if (query(1, 2 * n, 2, 2 * n)) { i = 1, j = 3, k = 2; } else { i = 2, j = 3, k = 1; } if (query(k, 2 * n, 3, 2 * n)) { std::swap(j, k); } if (query(i, n, j, n)) { std::swap(i, j); } output_answer(n, i, j, k); return 0; }