{
TASK: LABDARA
LANG: PASCAL
}
// Vartojamas masyvas
program Labdara1;
const Duomenys = 'LABDARA.DAT';
      Rezultatas = 'LABDARA.REZ';
      MAX = 5000;
type Mas = array[1..MAX] of integer;
var A : Mas; n : integer;   // Duomenų masyvas
    L : integer;            // Labdara

//------------------------------------
procedure Skaityti;
var F : text;
    i : integer;
begin
    Assign(F, Duomenys); Reset(F);
    Read(F, n);
    for i := 1 to n do
         Read(F, A[i]);
    Close(F);
end;
//------------------------------------
procedure Skaiciuoti;
var F : text;
    i : integer;
    s : integer;
begin
    L := 0;
    Assign(F, Rezultatas); Rewrite(F);
    for i := 1 to n - 1 do
      begin
        s := A[i] + A[i + 1];    // Poros pradinė pinigų turima suma
        if s mod 2 = 1           // Jeigu nelyginis skaičius,
          then L := L + 1;       // tai skiriamas labdarai vienas litas
        A[i] := s div 2;         // Pinigų dalyba: pirmasis iš poros
        A[i + 1] := s div 2;     // Pinigų dalyba: antrasis iš poros
        Writeln(F, A[i]);   // Pirmojo iš poros pinigai nekis. Jie spausdinami
      end;
    WriteLn(F, A[n]);          // Paskutinio vaiko pinigai
    Write(F, L);
    Close(F);
end;
//------------------------------------
begin
  Skaityti;
  Skaiciuoti;
end.
