Cod sursa(job #187955)

Utilizator qSortMorariu Razvan qSort Data 5 mai 2008 21:23:14
Problema Secv Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.06 kb
program secv;
var v:array[1..30000] of integer; {!!! de vazut restrictiile}
		n,i,aux,j,k,s,x: longint;
		f,g: text;
begin
assign(f,'secv.in'); reset(f);
assign(g,'secv.out'); rewrite(g);
read(f,n);
for i:=1 to n do begin
	read(f,x);
	v[i]:=x;
	end;
aux:=v[1];
for i:=1 to n do                        {gasesc minimul din secventa}
	if v[i]<aux then  begin
										aux:=v[i];
										j:=i;
										end;                {retin pozitia minimului}
i:=j;
{1} if j=1 then                         {minimul pe prima pozitie}
					if v[2]<v[n] then begin
														k:=2;
														aux:=k+1;
															for i:=k+1 to n do
																	if v[i]>aux then aux:=v[i];
														s:=v[j]+v[k]+aux;
														writeln(g,s);
														write(g,j,' ',k);
														end
					else  begin
								k:=n;
								aux:=j+1;
									for i:=j+1 to k-1 do
										if v[j]>aux then aux:=v[i];
								s:=v[j]+v[k]+aux;
								writeln(g,s);
								write(g,j,' ',k-1);
								end;





{2} if j=n then                         {minimul pe ultima pozitie}
					if v[1]<v[n-1] then begin
															k:=1;
															aux:=v[k+1];
																for i:=k+1 to j-1 do
																	if v[i]>aux then aux:=v[i];
															s:=v[j]+v[k]+aux;
															writeln(g,s);
															write(g,k,' ',j-1);
															end

					else  begin
								k:=n-1;
								aux:=v[1];
									for i:=1 to k-1 do
										if v[i]>aux then aux:=v[i];
								s:=v[j]+v[k]+aux;
								writeln(g,s);
								write(g,k-1,' ',k);
								end;





{3} if (j<>1) and (j<n) then	begin       {minimul in interiorul secventei}
															k:=j+1;
															aux:=v[1];
																for i:=1 to j do
																	if v[i]>aux then aux:=v[i];
															s:=v[j]+aux;
															aux:=v[k];
																for i :=k to n do
																	if v[i]>aux then aux:=v[i];
															s:=s+aux;
															writeln(g,s);
															write(g,j-1,' ',k-1);
															end;

close(f); close(g);
end.