Untitled
unknown
c_cpp
4 years ago
1.2 kB
6
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...