#include #define ll long long using namespace std; ll N,M,mapa[1005][1005],nums[300005],Bk,bs=-1,K=0,Ml; bool prosli[1005][1005]; struct cord{ ll x; ll y; } tren[1005],naj[1005]; struct ipcord{ ll x; ll y; ll n; }pn[10]; void provera(){ if(K>Ml) return; for(int i=1;i<=K;i++) nums[i]=mapa[tren[i].x][tren[i].y]; ll score=0; score=K*2; ll najveci=-1; for(int i=1;i=1;i--) if(nums[i]<=najveci) score--; else najveci=nums[i]; if(score>bs){ bs=score; Bk=K; for(int i=1;i<=K;i++){ naj[i].x=tren[i].x; naj[i].y=tren[i].y; } } return; } bool cmp(ipcord a,ipcord b){ return a.n=Ml) return; pn[1].x=x+1;pn[1].y=y;pn[1].n=mapa[x+1][y]; pn[2].x=x-1;pn[2].y=y;pn[2].n=mapa[x-1][y]; pn[3].x=x;pn[3].y=y+1;pn[3].n=mapa[x][y+1]; pn[4].x=x;pn[4].y=y-1;pn[4].n=mapa[x][y-1]; sort(pn+1,pn+5,cmp); for(int i=1;i<=4;i++) if(pn[i].n>0 and prosli[pn[i].x][pn[i].y]==false){ alg1(pn[i].x,pn[i].y); return; } return; } void alg1a(ll x,ll y){ // cout<N or y>M or x<1 or y<1 or K>Ml) return; // cout<N or y>M or x<1 or y<1 or d>Ml) return; //cout< presli; bool ret=0; void maxd2(ll x,ll y,ll d){ if(prosli[x][y]==true or mapa[x][y]==-1 or x>N or y>M or x<1 or y<1 or d>Ml) return; cout<>N>>M; for(int i=1;i<=N;i++) for(int j=1;j<=M;j++){ cin>>mapa[i][j]; if(mapa[i][j]-1){ minimum=mapa[i][j]; xm=i; ym=j; } } // cout<>Ml; //cout<