Untitled
unknown
c_cpp
4 years ago
1.2 kB
3
Indexable
#include <iostream> using namespace std; // ifstream cin("hercule.in"); // ofstream cout("hercule.out"); int n,m,b[11][11]; int a[11][11]; const int di[] = {0, 0, 1,-1, 1, 1,-1,-1}; const int dj[] = {1 , -1 ,0 ,0, 1,-1,1-1}; int inside(int i , int j) { return i >= 0 && i < n && j >= 0 && j < m; } void afis(){ for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cout<<b[i][j]<<" "; } cout<<endl; } cout<<endl; } void back(int i,int j,int pas){ for(int d=0;d<8;d++){ int in=i+di[d]; int jn=j+dj[d]; if(inside(in,jn)&&a[in][jn]>=pas&&a[in][jn]<=pas+1){ b[in][jn]=b[i][j]+1; int c=a[in][jn]; a[in][jn]=0; if(in==n-1&&jn==m-1) afis(); back(in,jn,c); b[in][jn]=0; a[in][jn]=c; } } } int main() { cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; } } b[0][0]=1; int l=a[0][0]; a[0][0]=0; back(0,0,l); return 0; }
Editor is loading...