var
i: integer;
n: integer;
p: array of integer;
function arrayZeroing (input: array of integer; length:integer):integer;//паскаль відмовляється приймати  у якості аргумента визначенний массив. Але з невизначенним неможливо працювати. Проте так хоч розв`язок приймається
var part1, part2: array of integer; 
length1, length2, wall, i, min:integer;
begin
 min:=2000000000;
 for i:= 1 to length do
  begin
   if (input[i]<min) then min:=input[i];
   wall:=i;
  end;
 for i:= 1 to length do
  input[i]:=input[i]-min;
 for i:= 1 to wall-1 do
  part1[i]:=input[i];
 for i:= wall+1 to length do
  part2[i]:=input[i];
 length1:=wall-1;
 length2:=length-wall;
 if (length=0) then arrayZeroing:=0 else
 arrayZeroing:=min+arrayZeroing(part1,length1)+arrayZeroing(part2,length2);
 
end;

BEGIN
readln(n);
for i:= 1 to n do
 read(p[i]);
write(arrayZeroing(p, n));
END.