Cod sursa(job #254629)

Utilizator andreivFMI - vacaroiu andrei andreiv Data 7 februarie 2009 13:21:09
Problema Cuburi2 Scor 0
Compilator fpc Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.86 kb
program cuburi;
var f,g:text;
    x,y,po,n,m,i,j,max:longint;
    v:array[1..5000] of longint;
    nr,va:int64;

begin
assign(f,'cuburi2.in');
assign(g,'cuburi2.out');
reset(f);
rewrite(g);
read(f,n,m);readln(f);
for i:=1 to n do
read(f,v[i]);
for i:=1 to m do
begin
readln(f);
read(f,x,y);
max:=v[x];nr:=0;po:=x;va:=0;
 for j:=x+1 to y do
  if v[j]>max then begin max:=v[j]; po:=j;  nr:=nr*2+v[j-1]; va:=nr;end
   else if (v[j]=max) and (abs( ((y-x+1) div 2)+((y-x+1)mod 2) -j)<abs(((y-x+1) div 2)+((y-x+1)mod 2)-po)) then
                 begin po:=j;  nr:=nr*2+v[j-1]; va:=nr;end
   else  nr:=nr*2+v[j-1];

if y-po<200 then begin nr:=0;
 for j:=y-1 downto po do
 nr:=nr*2+v[j+1];
if (y-x=2) and (v[x]+v[y]<=nr+va) then writeln(g,x+1,' ',v[x]+v[y]) else

writeln(g,po,' ',nr+va); end else write(g,po,' ',nr-va);
end;
close(f);
close(g);
end.