Cod sursa(job #1207412)

Utilizator USAdrianAdrian USAdrian Data 12 iulie 2014 22:54:43
Problema Submultimi Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.19 kb
program UB_prb5;
type vector=array[1..100] of integer;
var n,i,j,m,z,k:word;
    s1:longint;
    v:array[1..100] of integer;
    ev:boolean;
    st:vector;
    f,g:text;
procedure init(k:integer; var st:vector);
begin
 st[k]:=0;
end;

function valid(k:integer):boolean;
begin
ev:=true;
 for i:=1 to k-1 do
  if (st[k]=st[i]) or (st[k]<st[i]) then ev:=false;
 valid:=ev;
end;

procedure tipar;
begin
for i:=1 to k do
 write(g,st[i]);
end;

begin
assign(f,'submultimi.in');
assign(g,'submultimi.out');
reset(f);
rewrite(g);
read(f,n);
k:=1;
init(k,st);
  while k>0 do begin
   if st[k]<n then begin
    st[k]:=st[k]+1;
      if valid(k)=true then if k=n then begin tipar;
                                              writeln(g);
                                        end
                                     else begin tipar;
                                                  writeln(g);
                                                k:=k+1;
                                                init(k,st);
                                          end;
                   end
               else k:=k-1;
                end;
close(f);
close(g);;
readln
end.