ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1048. Сверхдлинные суммы

Could you help me to find the mistake in my program?
Послано Daewoo 3 июн 2004 19:42
const
  max=500000;
var
  data:array[0..max]of byte;
  n:longint;
  mid,i:longint;
  p:integer;
  a,b,a1,b1:integer;
begin
  fillchar(data,sizeof(data),0);
  read(n);
  mid:=n div 2;
  if odd(n)
    then p:=1
    else p:=0;
  for i:=1 to mid do
    begin
      read(a,b);
      read(a1,b1);
      data[i]:=10*(a+b)+a1+b1;
    end;
  for i:=1 to p do
    begin
      read(a,b);
      data[mid+p]:=a+b;
      inc(data[mid],data[mid+p]div 10);
      data[mid+p]:=data[mid+p]mod 10;
    end;
  for i:=mid downto 1 do
    begin
      inc(data[i-1],data[i]div 100);
      data[i]:=data[i]mod 100;
    end;
  if data[0]<>0
    then write(data[0]);
  for i:=1 to mid do
    if data[i]=0
      then write('00')
      else write(data[i]);
  if p>0
    then write(data[mid+p]);
end.
Re: Could you help me to find the mistake in my program?
Послано Diac Paul 4 июн 2004 14:51
Could it be the limit? you've got 500000 but the program should work for 1000000; I don't know. I've got a limit excedeed. - I used a 1000000 array of integers - ; then I tryed to stack more digits into one integer but it seems that something is not working well.