Saturday, August 2, 2014

Tìm Dãy Con.



=====code=====
var a,x:array[1..100] of integer;
    n,s,smin,smax:integer;
    count:word;
    name:string;
procedure init;
    var i:integer;
    begin
       write('nhap n : ');
       readln(n,s);
       for i:=1 to n do
       begin
          write('a[',i,']');
          readln(a[i]);
       end;
       count:=0;
    end;
procedure print;
    var i:integer;
    begin
       inc(count);
       write ('day',count,':');
       for i:=1 to n do
       if x[i]=1 then write(a[i]:3);
       writeln;
    end;
procedure try(i,smin,smax:integer);
    var j:byte;
        s1,s2:integer;
    begin
        for j:=0 to 1 do
        begin
           s1:=smin;
           s2:=smax;
           if j=0 then
           if a[i]<0 then s1:=s1-a[i]
           else s2:=s2-a[i]
           else
           if a[i]<0 then s2:=s2+a[i]
           else s1:=s1+a[i];
           if (s1<=s) and (s<=s2) then
           begin
              x[i]:=j;
              if i=n then print else try(i+1,s1,s2);
           end;
        end;
    end;
begin
    init;
    try(1,smin,smax);
    readln
end.

No comments:

Post a Comment