Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>#include <vector>#include <set>#include <map>#include <string>#include <assert.h>#include <queue>#include <time.h>using namespace std;const int inf=0x3f3f3f3f;const int N=500+9;#define ll unsigned long longbool tu[N][N];char s[N][N];int x,y ,n,m;queue<pair<int,int> > q;int v[N][N];int mx[4]={0,1,0,-1};int my[4]={1,0,-1,0};pair<int,int> get_next(int x,int y,int i,bool &ok){while(1){if(s[x][y]=='T') ok=1;int nx=x+mx[i];int ny=y+my[i];if(tu[nx][ny]==0) break;x=nx;