Cod sursa(job #114960)

Utilizator 7RaduRadu Antohi 7Radu Data 16 decembrie 2007 09:50:43
Problema Operatii Scor 40
Compilator fpc Status done
Runda preONI 2008, Runda 2, Clasa a 9-a Marime 1.17 kb
program Operatii;
label
   001, 666;
var
   fl : text;
   a : array[1..100000] of longint;
   n, i, j, k, l, m, s, p : longint;

function nzero:boolean;
var
   i : integer;
begin
   nzero := false;
   for i := 1 to n do
      if a[i] > 0 then
         Exit;
   nzero := true;
end;
procedure clear_1(inc, sfr:integer);
var
   i : integer;
begin
   for i := inc to sfr do
      a[i] := a[i] - 1;
end;
begin
   assign(fl,'operatii.in');
   reset(fl);
   readln(fl,n);
   for i := 1 to n do
      read(fl,a[i]);
   close(fl);

   s := 0;
001: ;
   for i := 1 to n do
      if a[i] > 0 then
         for j := i to n do
            if a[j] = 0 then
               begin
                  clear_1(i,j-1);
                  goto 666;
               end
                 else
                    if (j = n) and (a[j] > 0) then
                       begin
                          clear_1(i,j);
                          goto 666;
                       end;
666: ;

   if not nzero then
      begin
         s := s + 1;
         goto 001;
      end;
   s := s + 1;

  assign(fl,'operatii.out');
  rewrite(fl);
  writeln(fl,s);
  close(fl);
end.