program Project2; {$APPTYPE CONSOLE} type map=array[0..1000,0..1000] of integer; data=array[0..100*100-1] of integer; var w,h:map; ii,temp,size,x,y,x1,y1,x2,y2,i,j,point,level,min,max,len:integer; a,b:data; f:text; ch:char; function ok:boolean; var o:boolean; begin o:=true; case a[point] of 1: o:=(x>1) and (abs(w[x,y]-w[x-1,y])<=size) and (h[x-1,y]=0); 2: o:=(x1) and (abs(w[x,y]-w[x,y-1])<=size) and (h[x,y-1]=0); 4: o:=(yw[x,y] then min:=w[x,y]; end; h[x,y]:=0; if level>(max-min) then begin len:=point-1; level:=max-min; b:=a; end; end; if (point>=size*size) {Идти некуда} then begin point:=size*size-1; h[x,y]:=0; a[point]:=0; point:=point-1; case a[point] of 1: inc(x); 2: dec(x); 3: inc(y); 4: dec(y); end; {case} end; until point=0; assign(f,'karavan'+ch+'.sol'); rewrite(f); if level=maxint then writeln(f,'NO') else writeln(f,level); close(f); writeln(size,' ',level); // readln; end; END.