|  | 
|  | 
| вернуться в форум | Please give me some test Послано Harmy  25 май 2004 11:53{my wrong code}const
 maxn=600;
 type
 link=^re;
 re=record
 num:integer;
 q:link;
 end;
 var
 p:link;
 n:longint;
 va:array[1..maxn]of byte;
 g:array[1..maxn]of link;
 max:array[1..maxn,0..1]of longint;
 r:array[1..maxn]of boolean;
 
 procedure init;
 var
 x,y,i:longint;
 begin
 assign(input,'1039.in'); reset(Input);
 fillchar(r,sizeof(r),false);
 readln(n);
 for i:=1 to n do
 readln(va[i]);
 readln(y,x);
 while (x<>0) or (y<>0) do
 begin
 r[y]:=true;
 new(p);
 p^.num:=y;
 p^.q:=g[x];
 g[x]:=p;
 readln(y,x);
 end;
 end;
 
 procedure solve(root:longint);
 var
 p:link;
 x,big:longint;
 begin
 new(p); p:=g[root];
 while p<>nil do
 begin
 x:=p^.num;
 solve(x);
 inc(max[root,1],max[x,0]);
 if max[x,0]>max[x,1]
 then big:=max[x,0]
 else big:=max[x,1];
 inc(max[root,0],big);
 p:=p^.q;
 end;
 inc(max[root,1],va[root]);
 end;
 
 procedure main;
 var
 i:longint;
 begin
 for i:=1 to n do
 if not(r[i])
 then begin
 solve(i);
 if max[i,1]>max[i,0]
 then writeln(max[i,1])
 else writeln(max[i,0]);
 exit;
 end;
 end;
 
 begin
 init;
 main;
 end.
 
 
 The code is wrong at the fourth test.I am pluzzled.
 Please give me some tests. Sorry for my fool.
 
 
 
 
 
 
 
 
 
 
 
 
Two bugs 1). maxn must be 60002). va must be array of LongInt
Re: Two bugs Послано Harmy  26 май 2004 13:30    Thank you very much!I fix my code following your advice and AC now.
 I am so careless that I feel very ashamed.You are an alive
 Lei Feng(a great person).And I would like to make friends
 with you.
Re: Two bugs 'An alive Lei Feng' is wrong, it must be 'a living Lei Feng'. | 
 | 
|