Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <map>#include <set>#include <cmath>#include <queue>#include <stack>#include <cstdio>#include <vector>#include <cctype>#include <string>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>template <class T>inline void rd(T &x) { char c = getchar(); x = 0;while(!isdigit(c)) c = getchar();while(isdigit(c)) { x = x * 10 + c - '0'; c = getchar(); }}template <class T> void Out(T a) { if(a < 0){putchar('-');a = -a;}if(a >= 10)Out(a / 10);putchar(a % 10 + '0'); }using namespace std;const int maxn = 105;int T, n;int a[maxn][maxn], b[maxn][maxn], vir[maxn][maxn];struct Point {int x, y;Point(int x = 0, int y = 0) : x(x), y(y) { }};void Rotate(Point p1, Point p2) {