Untitled
unknown
plain_text
22 days ago
1.7 kB
1
Indexable
Never
#include<iostream> using namespace std; int n,m,mat[21][21],ok=1,maxim=-1,folosite[21][21]; int di[4]={-1,0,1,0}; int dj[4]={0,1,0,-1}; int limite(int linie, int coloana) { if(linie>=1 && linie<=n && coloana>=1 && coloana<=m) return 1; return 0; } void backtracking(int linie, int coloana, int nivel) { if(linie==n && coloana==m) {//cout<<nivel<<" "; if(nivel>maxim) { maxim=nivel; } return; } else { for(int i=0;i<4;i++) { if(mat[linie+di[i]][coloana+dj[i]]>=mat[linie][coloana] && limite(linie+di[i],coloana + dj[i])==1 && folosite[linie+di[i]][coloana+dj[i]]==0) {folosite[linie+di[i]][coloana+dj[i]]=1; backtracking(linie+di[i],coloana+dj[i],nivel+1); folosite[linie+di[i]][coloana+dj[i]]=0; } } } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>mat[i][j]; } } //mat[1][1]=1; backtracking(1,1,1); if(maxim==-1) { cout<<"imposibil"; } else cout<<maxim; return 0; }
Leave a Comment