/// Problem O - Grid #include #include #include #include using namespace std; #define MAXM 505 #define MAXN 505 #define INF 0x3f3f3f3f #define NINF 0xc0c0c0c0 int m,n; char map[MAXM][MAXN]; int val[MAXM][MAXN]; struct _pos { int line,col; _pos(int _line,int _col):line(_line),col(_col){} }; void solve() { queue<_pos> bus; bus.push(_pos(1,1)); val[1][1]=0; /// Main Loop while(!bus.empty()) { _pos pos=bus.front(); bus.pop(); int power=map[pos.line][pos.col]-'0'; /// 4 Directions /// up if(pos.line-power>0&&val[pos.line][pos.col]+10&&val[pos.line][pos.col]+1