Cod sursa(job #46386)

Utilizator savimSerban Andrei Stan savim Data 2 aprilie 2007 16:50:11
Problema Oo Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 3.7 kb
var f1,f2:text;
    q,s,n,i:longint;
    err:integer;
    a,b:array[1..100000] of longint;
    x:char;
begin
assign(f1,'oo.in');
assign(f2,'oo.out');
reset(f1);
rewrite(f2);
readln(f1,n);
for i:=1 to n do
 begin
 { read(f1,x);
  val(x,q,err);
  a[i]:=q;
  read(f1,x);}
  read(f1,a[i]);
 end;
s:=0;
for i:=1 to n do
 begin
  if i<=2 then begin
                if i=1 then if (a[1]+a[2]>a[3]+a[4]) and
                               (a[1]+a[2]>a[n]+a[n-1]) and
                               (b[1]=0) and (b[2]=0) and (b[3]=0) and
                               (b[n]=0) then begin
                                              s:=s+a[1]+a[2];
                                              a[1]:=0;b[1]:=1;
                                              a[2]:=0;b[2]:=1;
                                              a[3]:=0;b[3]:=1;
                                              a[n]:=0;b[n]:=1;
                                             end
                      else if (a[2]+a[3]>a[4]+a[5]) and
                               (a[2]+a[3]>a[1]+a[n]) and
                               (b[1]=0) and (b[2]=0) and (b[3]=0) and
                               (b[4]=0) then begin
                                              s:=s+a[2]+a[3];
                                              a[1]:=0;b[1]:=1;
                                              a[2]:=0;b[2]:=1;
                                              a[3]:=0;b[3]:=1;
                                              a[4]:=0;b[4]:=1;
                                             end
               end;
  if i>=n-1 then begin
                  if n=n-1 then
                             if (a[n-1]+a[n]>a[1]+a[2]) and
                                (a[n-1]+a[n]>a[n-2]+a[n-3]) and
                                (b[n-2]=0) and (b[n-1]=0) and (b[n]=0) and
                                (b[1]=0) then begin
                                               s:=s+a[n-1]+a[n];
                                               a[n-2]:=0;b[n-2]:=1;
                                               a[n-1]:=0;b[n-1]:=1;
                                               a[n]:=0;b[n]:=1;
                                               a[1]:=0;b[1]:=1;
                                              end
                           else
                             if (a[n]+a[1]>a[2]+a[3]) and
                                (a[n]+a[1]>a[n-2]+a[n-1]) and
                                (b[n-1]=0) and (b[n]=0) and (b[1]=0) and
                                (b[2]=0) then begin
                                               s:=s+a[n]+a[1];
                                               a[n-1]:=0;b[n-1]:=1;
                                               a[n]:=0;b[n]:=1;
                                               a[1]:=0;b[1]:=1;
                                               a[2]:=0;b[2]:=1;
                                              end
               end;
  if (i>2) and (i<n-1) then begin
                             if (a[i]+a[i+1]>a[i+2]+a[i+3]) and
                                (a[i]+a[i+1]>a[i-1]+a[i-2]) and
                                (b[i]=0) and (b[i-1]=0) and (b[i+1]=0) and
                                (b[i+2]=0) then
                                            begin
                                             s:=s+a[i]+a[i+1];
                                             a[i]:=0;a[i+1]:=0;
                                             a[i-1]:=0;a[i+2]:=0;
                                             b[i]:=1;b[i+1]:=1;
                                             b[i-1]:=1;b[i+2]:=1;
                                            end;
                            end;
 end;
writeln(f2,s);
close(f1);
close(f2);
end.