#include #include #include #include using namespace std; // N E S W constexpr array dr = {-1, 0, 1, 0}, dc = { 0, 1, 0,-1}; constexpr int dr_size = dr.size(); bool is_kado(int a, int b, int c) { if(a == 0) { return true; } return a!=c && ((a>b&&bc)); } int main(void) { int C, R; scanf("%d%d", &C, &R); vector> G(R, vector(C, 0)); for(int r=0; r>>> seen(R, vector>>(C, vector>(10, vector(10, false)))); // seen[R][C][10][10] queue> que; que.emplace(0, 0, 0, 0, G[0][0]); while(!que.empty()) { int cnt, r, c, b2, b1; tie(cnt, r, c, b2, b1) = que.front(); que.pop(); if(seen[r][c][b2][b1]) { continue; } seen[r][c][b2][b1] = true; if(r == R-1 && c == C-1) { printf("%d\n", cnt); return 0; } for(int i=0; i