#include <iostream> #define ARC 6 #define INT_MAX 400 using namespace std; const int dx[4]={-1,0,0,1}; const int dy[4]={0,-1,1,0}; int a,b,c,d; int mapchess[ARC][ARC]; void dfs(int &curMin,int sum,int state,int curX,int curY){ if(sum>=curMin){ return; } if(curX==c&&curY==d){ if(sum<curMin){ curMin=sum; } return; } for(int i=0;i<4;i++){ int nextX=curX+dx[i]; int nextY=curY+dy[i]; if(nextX>=0&&nextX<ARC&&nextY>=0&&nextY<ARC){ if(sum+state*mapchess[nextX][nextY]<curMin){ dfs(curMin,sum+state*mapchess[nextX][nextY],state*mapchess[nextX][nextY]%4+1,nextX,nextY); } } } } int main(){ for(int i=0;i<ARC;i++){ for(int j=0;j<ARC;j++){ cin>>mapchess[i][j]; } } cin>>a>>b>>c>>d; int curMin=INT_MAX; dfs(curMin,0,1,a,b); cout<<curMin<<endl; }