Pagini recente » Cod sursa (job #3173446) | Cod sursa (job #843107) | Cod sursa (job #2223349) | Cod sursa (job #1564040) | Cod sursa (job #115498)
Cod sursa(job #115498)
program operatii;
type vector=array [1..10000] of 1..100000;
valoare=1..100000;
var f,g:text;
n,i,nr:longint;
v:vector;
procedure divide_et_impera(p,k:longint);
var j,l:longint;
min:valoare;
begin
min:=v[p];
for j:=p+1 to k do
if min>v[j] then min:=v[j]; write(g,min);
nr:=nr+min;
for j:=p to k do
if v[j]>min then begin
l:=j-1;
repeat
l:=l+1;
until (v[l]=min) or (l=k);
divide_et_impera(j,l-1);
j:=l+1;
end; end;
begin
assign(f,'operatii.in'); reset(f);
assign(g,'operatii.out'); rewrite(g);
readln(f,n);
for i:=1 to n do read(f,v[i]);
divide_et_impera(1,n);
write(g,nr);
close(f); close(g);
end.