Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <ctype.h>#include <string.h>#include <stdlib.h>#include <limits.h>#include <math.h>#include <algorithm>#include <map>#include <queue>using namespace std;typedef long long ll;const int di[4][2]={{-1,0},{1,0},{0,1},{0,-1}};struct Point{int x,y;Point(){}Point(int a,int b):x(a),y(b){}Point go(int i){return Point(x+di[i][0],y+di[i][1]);}bool check(int n,int m){return x>=1&&y>=1&&x<=n&&y<=m;}};int Alength[1005];int Blength[1005];int K;int cross[35][2];