program fastfood(fin,output); type tstate = record totdist,pred : integer; end; var fin : text; n,k,num,z,v,u,t,s,best : integer; dist : array[1..200] of integer; state : array[1..30,1..200] of tstate; depot : array[1..200] of integer; function d(a,b : integer):integer; begin d:=abs(dist[a]-dist[b]); end; function min(a,b : integer):integer; begin if a0 do begin num:=num+1; for z:=1 to n do readln(fin,dist[z]); for z:=1 to n do begin v:=0; for u:=1 to z-1 do v:=v+d(z,u); state[1,z].totdist:=v; end; for z:=2 to k do begin for v:=z to n do begin state[z,v].totdist:=state[z-1,v-1].totdist; state[z,v].pred:=v-1; for u:=z-1 to v-2 do begin t:=0; for s:=u+1 to v-1 do t:=t+min(d(s,u),d(s,v)); if state[z,v].totdist>state[z-1,u].totdist+t then begin state[z,v].totdist:=t+state[z-1,u].totdist; state[z,v].pred:=u; end; end; end; end; for z:=k to n do for v:=z+1 to n do state[k,z].totdist:=state[k,z].totdist+d(z,v); u:=k; for z:=k+1 to n do if state[k,z].totdist