Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cmath>#include <cstdio>#include <vector>#include <iostream>#include <algorithm>#include <unordered_map>#include <cstring>#include <queue>#include <map>using namespace std;typedef long long ll;const int maxn = 105;int f[maxn][maxn][4];int n,m;char s[maxn][maxn];struct P{int x,y,z;P(){};P(int x,int y,int z):x(x),y(y),z(z){}};vector<P> routeHelper(int x,int y,int z){vector<P> ret;int nz=(z+2)%4;int nx=(z&1)?x+(z==3?1:-1):x;int ny=(z&1)?y:(z==0?1:-1)+y;if(nx>=0&&nx<n&&ny>=0&&ny<m)ret.push_back(P(nx,ny,nz));if(s[x][y]==' '||(s[x][y]=='\\'&&!(z&1))||(s[x][y]=='\/'&&(z&1)))ret.push_back(P(x,y,(z+1)%4));if(s[x][y]==' '||(s[x][y]=='\\'&&(z&1))||(s[x][y]=='\/'&&!(z&1)))