[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Олимпиадное программирование ->Обсуждение теории
Автор Сообщение
Александр Соловьёв

Темы: 7
Сообщений: 29

Мой профиль
Гомельская обл. \1998\День 1\C - "Такси"
Выложу сразу исходник.

 
var 
a,b,ans : Array [1..100] of longint;
st : array [1..100] of longint;
n,i,sum,stn,kol,min : longint;

Procedure rec(k : longint);
var ak,i : longint;
begin
 ak:=b[k];
 if sum+ak>n then exit;
    inc(sum,ak);
    inc(st[ak]);
 if sum=n then 
 begin
  kol:=0;
  for i:=1 to 10 do kol:=kol+a[i]*st[i];
  if kol<min then 
  begin
   min:=kol;
   for i:=1 to 10 do ans[i]:=st[i];
  end;
 end;
 rec(k);
 for i:=k+1 to 10 do rec(i);
 dec(sum,ak);
 dec(st[ak]);
end;

begin
assign(input,'taxi.inp'); reset(input);
assign(output,'output.txt'); rewrite(output);
 min:=maxlongint;
 for i:=1 to 10 do read(a[i]);
 read(n);
 sum:=0;
 for i:=1 to 10 do b[i]:=i;
 for i:=1 to 10 do rec(i);
 for i:=1 to 10 do 
 begin
  while ans[i]>0 do 
  begin
   writeln(i,' ',a[i]);
   dec(ans[i]);
  end;
 end;
 writeln(min);
 close(input); close(output);
end.


Вот мои посылки на разные компиляторы:
C. Такси 100 / 100 Все тесты успешно пройдены 1С.pas DelTA3 at NewIT Delphi 7

26.11 20:20 C. Такси 0 / 100 ошибка компиляции 1С.pas DelTA3 at NewIT FP Win32 2.0.2

26.11 20:19 C. Такси 100 / 100 Все тесты успешно пройдены 1С.pas DelTA3 at NewIT FP go32v2 v1.0.10

26.11 20:18 C. Такси 0 / 100 Ошибка чекера на 5-ом тесте. Причина выхода: Runtime Error 201:Range check error 1С.pas DelTA3 at DLServer FP Win32 v2.2.0

C. Такси 100 / 100 Все тесты успешно пройдены 1C.pas DelTA3 at NewIT Turbo Pascal 7.0

Хотелось бы разобраться, почему один и тот же код на одних компиляторах проходит, а на других слетает.
(Конкретно интересует компилятор FP Win32 v2.2.0 там где ошибка чекера)

 
Индекс форума ->Олимпиадное программирование ->Обсуждение теории
Time:0,046