ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1018. Binary Apple Tree

I am CRAZY of this problem!!!
Posted by SP2 17 Sep 2007 20:44
I can't understand WHY i have WA1! On all tests my solution is good. And what do i have to do with branches without apples

Here is my solution:

program Project2;

{$APPTYPE CONSOLE}

var Sons:array[1..200,1..2] of byte;
    val:array[1..200,1..2] of longint;
    Rez:array[1..200,1..200] of int64;
    Was:array[1..200,1..200] of boolean;
    x,y,c,n,q,j:longint;


function max(a,b:longint):longint;
begin
if a>=b then max:=a else max:=b;
end;


function R(m,k:longint):int64;
var i,maxim:longint;
begin
if k=0 then R:=0 else
if k=1 then R:=max(val[m,1],val[m,2]) else
 begin
 maxim:=0;
 if Sons[m,1]<>0 then
                   begin
                   if Was[Sons[m,1],k-1] then maxim:=max(Rez[Sons[m,1],k-1],maxim) else
                     begin
                     Rez[Sons[m,1],k-1]:=R(Sons[m,1],k-1)+val[m,1];
                     Was[Sons[m,1],k-1]:=true;
                     maxim:=max(Rez[Sons[m,1],k-1],maxim);
                     end;
                   end;

 if Sons[m,2]<>0 then
                   begin
                   if Was[Sons[m,2],k-1] then maxim:=max(Rez[Sons[m,2],k-1],maxim) else
                     begin
                     Rez[Sons[m,2],k-1]:=R(Sons[m,2],k-1)+val[m,2];
                     Was[Sons[m,2],k-1]:=true;
                     maxim:=max(Rez[Sons[m,2],k-1],maxim);
                     end;
                   end;

 if (Sons[m,1]<>0)and(Sons[m,2]<>0) then
                   begin
                    for i:=0 to k-2 do
                     begin
                      if not Was[Sons[m,1],i] then begin Rez[Sons[m,1],i]:=R(Sons[m,1],i); Was[Sons[m,1],i]:=true; end;
                      if not Was[Sons[m,2],k-2-i] then begin Rez[Sons[m,2],k-2-i]:=R(Sons[m,2],k-2-i); Was[Sons[m,2],k-2-i]:=true; end;
                      maxim:=max(maxim,Rez[Sons[m,1],i]+Rez[Sons[m,2],k-2-i]+val[m,1]+val[m,2]);
                     end;
                   end;
 R:=maxim;
 end;
end;


begin
read(n,q);
for j:=1 to n-1 do
 begin
 read(x,y);
 read(c);
 if Sons[x,1]=0 then
  begin Sons[x,1]:=y; val[x,1]:=c end else
  begin Sons[x,2]:=y; val[x,2]:=c; end;
 end;


write(R(1,q));

Help me!!!
end.
Re: I am CRAZY of this problem!!!
Posted by svr 17 Sep 2007 23:44
You need in some may be random tests from having AC
and it's bad that this help is absent!
Soon I give to all and you five tests.
Why bad!
Because problem or test is the best source of a progress.

Edited by author 17.09.2007 23:47

Edited by author 17.09.2007 23:47
Re: I am CRAZY of this problem!!!
Posted by SP2 18 Sep 2007 15:20
I am agree with you, but why WA1!