#include #include using namespace std; bool uMatr(int x,int y,int n,int m){ return (x>=0&&y>=0&&x>n>>m; queue q; int a[n][m],v[n][m]; for(int i=0;i>a[i][j]; v[i][j]=-1; } K temp; temp.X=temp.Y=0; //podrazumijevam da je prva tacka OK v[0][0]=0; q.push(temp); int tv=0; while(!q.empty()&&v[n-1][m-1]==-1){ K temp=q.front(),temp1; int x=temp.X,y=temp.Y; q.pop(); tv=v[x][y]+1; //tri puta ponavljam isto za tri pravca //moglo je i moralo malo ljepse da se izbjegne galimatijas :) int i=1; while(uMatr(x+i,y+i,n,m)&&a[x+i][y+i]){ if(v[x+i][y+i]==-1) { v[x+i][y+i]=tv; temp1.X=x+i; temp1.Y=y+i; q.push(temp1); } i++; } i=1; while(uMatr(x+i,y,n,m)&&a[x+i][y]){ if(v[x+i][y]==-1) { v[x+i][y]=tv; temp1.X=x+i; temp1.Y=y; q.push(temp1); } i++; } i=1; while(uMatr(x,y+i,n,m)&&a[x][y+i]){ if(v[x][y+i]==-1) { v[x][y+i]=tv; temp1.X=x; temp1.Y=y+i; q.push(temp1); } i++; } //Komentari su dati jer mogu nesto da odstamaju da //bi se vidjela progresija programa /* for(int i=0;i>r; */ } cout<