Cod sursa(job #1097773)

Utilizator RusuAlexeiRusu Alexei RusuAlexei Data 3 februarie 2014 22:06:34
Problema Submultimi Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.99 kb
program submultimi;

  var buf:array[1..100000]of byte;
      n,j:byte;
      i:longint;
      a:array[1..17]of byte;
      {vectorul a contine un numar binar
      in care a[1] este cifra cea mai putin semnificativa}

begin
  assign(input,'submultimi.in');
  reset(input);
  assign(output,'submultimi.out');
  rewrite(output);

  settextbuf(output,buf);
  {se utilizeaza bufere pentru a citi/scrie mai rapid
   cind avem un numar mare de date (comparabil sau mai mare decit
   ordinul sutelor de mii) }


  readln(n);

  for i:=1 to ((1 shl n)-1) do  {numarul submultimilor este egal cu 2^n}
    begin                       {dintre care 2^n-1 nevide}
      inc(a[1]);
      j:=1;
      while a[j]=2 do
        begin
          a[j]:=0;            {incrementarea numarului }
          inc(a[j+1]);        {binar cu o unitate}
          inc(j);
        end;


      for j:=1 to n do
        if a[j]=1 then write(j,' ');

      writeln;
    end;

  close(output);
end.