/* -*- coding: utf-8 -*- * * 471.cc: No.471 直列回転機 - yukicoder */ #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<iostream> #include<string> #include<vector> #include<map> #include<set> #include<stack> #include<list> #include<queue> #include<deque> #include<algorithm> #include<numeric> #include<utility> #include<complex> #include<functional> using namespace std; /* constant */ const int MAX_M = 50000; /* typedef */ /* global variables */ int xs[MAX_M], ys[MAX_M]; /* subroutines */ /* main */ int main() { int m; scanf("%d", &m); for (int i = 0; i < m; i++) scanf("%d%d", xs + i, ys + i); // x' = ax + by + c // y' = dx + ey + f int a, b, c, d, e, f; // (0, 0) -> (c, f) puts("! 0 0"); fflush(stdout); scanf("%d%d", &c, &f); // (1, 0) -> (a + c, d + f) puts("! 1 0"); fflush(stdout); int ac, df; scanf("%d%d", &ac, &df); a = ac - c; d = df - f; // (0, 1) -> (b + c, e + f); puts("! 0 1"); fflush(stdout); int bc, ef; scanf("%d%d", &bc, &ef); b = bc - c; e = ef - f; putchar('!'); putchar('\n'); for (int i = 0; i < m; i++) { int x = a * xs[i] + b * ys[i] + c; int y = d * xs[i] + e * ys[i] + f; printf("%d %d\n", x, y); } fflush(stdout); return 0; }