Между населёнными пунктами А, В, С, D, Е построены дороги, протяжённость которых (в километрах) приведена в таблице: Определите длину кратчайшего пути между пунктами А и E. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.
1)7 2)8 3)9 4)10
for i:=1 to n do beginread(input,ar[i]);ts:=ts+2*ar[i];end;
if ts<a then writeln(output,'-1') else
begin
ara[1]:=3;for i:=2 to 15 do begin ara[i]:=3*ara[i-1];end;
for i:=1 to ara[n] do begin if arq[n]<2 then begin inc(arq[n]);sum:=sum+ar[n];inc(nm); end else begin g:=n;while arq[g]>1 do begin sum:=sum-ar[g]*arq[g];dec(nm,arq[g]);arq[g]:=0;dec(g);end;
inc(arq[g]);sum:=sum+ar[g];inc(nm);end;if sum=a then begin if nm<ans then ans:=nm;end;end;
if ans>1000 then writeln(output,'0') else writeln(output,ans); end;
close(output);close(input);end.
var x,y:array[1..n] of real; i:integer; t:boolean;
begin
for i:=1 to n do read(x[i]);
for i:=1 to n do if x[i]>m then y[i]:=x[i];
t:=true;
while t do begin
t:=false;
for i:=1 to n-1 do if ((y[i]<=m) or (y[i]>y[i+1])) and (y[i+1]>m) then begin
t:=true;
y[i]:=y[i]+y[i+1]; y[i+1]:=y[i]-y[i+1]; y[i]:=y[i]-y[i+1]
end
end;
for i:=1 to n do if y[i]>m then write(y[i],' ') else break;
writeln;
for i:=1 to n-1 do begin
if y[i]<=m then break;
if y[i]=y[i+1] then begin
if t=false then begin t:=true; write(i,' ') end;
write(i+1,' ') end
else t:=false
end
end.