type aa=record x,y,d:longint; end; var m,n,k,i,j,t,ans,tot,x,y,d:longint; a:array[0..2000] of aa; procedure qs(l,r:longint); var i,j,mid:longint; t:aa; begin i:=l; j:=r; mid:=a[(l+r) div 2].d; while i<=j do begin while a[i].d>mid do inc(i); while a[j].d<mid do dec(j); if i<=j then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; inc(i); dec(j); end; end; if l<j then qs(l,j); if i<r then qs(i,r); end; begin readln(m,n,k); for i:=1 to m do begin for j:=1 to n do begin read(d); if d<>0 then begin inc(tot); a[tot].d:=d; a[tot].x:=i; a[tot].y:=j; end; end; readln; end; qs(1,tot); k:=k-2; t:=0; x:=1; y:=a[1].y; for i:=1 to tot do begin t:=t+1+abs(a[i].x-x)+abs(a[i].y-y)+a[i].x-1; if t<=k then begin inc(ans,a[i].d); x:=a[i].x; y:=a[i].y; end; t:=t-(a[i].x-1); end; writeln(ans); end. /************************************************************** Problem: 2245 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/