Why W. A. 5???? I cannot understand.++++++help please+++++++ var a:array[1..30,1..30,1..30] of integer; i,j,n,m,t:integer; otv:longint; procedure profi(j1,i1:integer; sum:longint); var k:integer; begin k:=1; if j1=n+1 then if sum<otv then otv:=sum else else while a[j1,i1,k]<>0 do begin profi(j1+1,k,sum+a[j1,i1,k]); inc(k); end; end; begin otv:=maxlongint; readln(n); for i:=1 to n do begin readln(m); for j:=1 to m do repeat read(t); if t=0 then readln else read(a[i,t,j]); until t=0; if i<>n then readln; end; i:=1; while a[1,1,i]<>0 do begin profi(2,i,a[1,1,i]); inc(i); end; writeln(otv); end. help please program de; var a:array[1..31,1..31,1..31] of integer; i,j,n,m,t:integer; otv:longint; I have corrected the mistake but now TLE Give me please idea as it is possible to reduce passes procedure profi(j1,i1:integer; sum:longint); var k:integer; begin if j1=n+1 then if sum<otv then otv:=sum else else for k:=1 to 31 do if (a[j1,i1,k]<>0) then profi(j1+1,k,sum+a[j1,i1,k]); end; begin otv:=maxlongint; readln(n); for i:=1 to n do begin readln(m); for j:=1 to m do repeat read(t); if t=0 then readln else read(a[i,t,j]); until t=0; if i<>n then readln; end; i:=1; for i:=1 to 30 do IF a[1,1,i]<>0 THEN profi(2,i,a[1,1,i]); writeln(otv); end. |