Cod sursa(job #67771)

Utilizator maria_pparcalabescu maria daniela maria_p Data 25 iunie 2007 14:01:29
Problema Sarpe Scor 10
Compilator fpc Status done
Runda preONI 2007, Runda Finala, Clasa a 9-a si gimnaziu Marime 1.44 kb
var f,g:text;
    i,aux,t:longint;
    a:array[0..10000]of longint;

procedure inmultire;
begin
t:=0;i:=1;
while (i<=a[0])do
      begin
      a[i]:=(a[i]+t)*8;
      t:=a[i] div 10;
      a[i]:=a[i] mod 10;
      inc(i);
      end;
if t<>0 then begin
             a[i]:=t;
             inc(i);
             end;
a[0]:=i-1;
end;

begin
assign(f,'sarpe.in');reset(f);
assign(g,'sarpe.out');rewrite(g);
a[0]:=0;
while not eoln(f) do
      begin
      inc(a[0]);
      read(f,a[a[0]]);
      end;
for i:=1 to a[0] div 2 do
    begin
    aux:=a[i];
    a[i]:=a[a[0]-i+1];
    a[a[0]-i+1]:=aux;
    end;
case a[1] of
1:writeln(g,'2');
2:writeln(g,'8');
3:writeln(g,'16');
4:writeln(g,'24');
else begin
     if a[1]<4 then begin
                       dec(a[2]);
                       a[1]:=10+a[1]-4;
                       end
                  else a[1]:=a[1]-4;
     inmultire;
     a[1]:=a[1]+4;
     if a[1]>9 then begin
                       a[2]:=a[2]+a[1]div 10;
                       a[1]:=a[1]mod 10;
                       if a[0]<2 then a[0]:=2;
                       end;
     a[2]:=a[2]+2;
     if a[2]>9 then begin
                         a[3]:=a[3]+a[2] div 10;
                         a[2]:=a[2] mod 10;
                         if a[0]<3 then a[0]:=3;
                         end;
     for i:=a[0] downto 1 do
         write(g,a[i]);
     writeln(g);
     end;
end;
close(f);
close(g);
end.