[Мы решаем ваши проблемы с Си и Паскалем ]
Главная » Статьи » Задачи с acm.timus.ru » Пакет решений на 15.03.08

1079
Const
  ts = 100000;
Var
  K,N,I,R: LongInt;
  M: Array[1..ts] of LongInt;
Function A(N:LongInt): LongInt;
Var
  T: LongInt;
Begin
  If M[N]<>0 then begin
    A:=M[N];
    Exit;
  End;
  If N=0 then T:=0;
  If N=1 then T:=1;
  If (N<>1) and (N<>0) then
    If Odd(N) then T:=A((N-1) div 2) + A((N-1) div 2+1)
              else T:=A(N div 2);
  M[N]:=T;
  A:=T;
End;
Begin
  FillChar(M,SizeOf(M),0);
  Readln(N);
  For I:=1 to ts do
    A(I);
  While (N<>0) do begin
    R:=0;
    For I:=1 to N do
      If R<M[I] then R:=M[I];
    Writeln(R);
    Readln(N);
  End;
End.
Категория: Пакет решений на 15.03.08 | Добавил: solver (15.03.2008)
Просмотров: 847