Показать сообщение отдельно
  #1  
Старый 17.10.2010, 13:44
AC-93 AC-93 вне форума
Прохожий
 
Регистрация: 17.10.2010
Сообщения: 4
Репутация: 10
По умолчанию тестирующая система выдает ошибку, хотя у меня верный ответ

Здравствуйте, в олимпиадах очень часто порюсь на следующем:
1) пишу программу делфи 2006, без всяких левых модулей и тд.
2) она работает верно.
3) отправляю на тест систему, выдает ошибку на 1 тесте (который в примере и который точно решается верно)
4) запускаю через консоль с параметрами dcc32 -CC -$D- мне выдает верный ответ.
Большая просьба помочь, если нужен код
Код:
program Project1; 

uses 
SysUtils; 

var n,m,i,j,q:integer; 
c:char; 
s,king:string; 
a:array [1..50,1..3] of string[10]; 
b:array [1..100] of real; 
k:array [1..100] of real; 

procedure blood(l:string;p:integer); 
var i1:integer; 
begin 
p:=2*p; 
for I1 := 1 to n do 
if (a[i1,2]=l) or (a[i1,3]=l) then begin 
b[i1]:=b[i1]+1/p; 
blood(a[i1,1],p); 
end; 
end; 

begin 
fillchar(a,sizeof(a),0); 
fillchar(b,sizeof(b),0); 
fillchar(k,sizeof(k),0); 
assign(input,'input.txt'); 
assign(output,'output.txt'); 
reset(input); 
rewrite(output); 
read(n); 
readln(m); 
readln(king); 
for i:=1 to n do 
begin 
for j:=1 to 3 do 
begin 
read(c); 
while (c<>' ') and (not eoln) do 
begin 
a[i,j]:=a[i,j]+c; 
read(c); 
end; 
if c<>' ' then a[i,j]:=a[i,j]+c; 

end; 
readln; 
end; 
i:=0; j:=0; s:=''; q:=0; 
blood(king,1); 
for i:=1 to m do begin readln(s); 
for j := 1 to n do if (s=a[j,1]) and (b[j]>b[q]) then q:=j; 
end; 
write(a[q,1]); 
Close(output); 
{ TODO -oUser -cConsole Main : Insert code here } 
end.
Admin: Теги и еще раз теги!

http://olympic.nsu.ru/nsuts-test/nsu...askid=113 111
задача А
опции компиляции Borland Delphi 2006 : dcc32 -CC -$D-
Ответить с цитированием