Cod sursa(job #1600141)

Utilizator DoubleNyNinicu Cristian DoubleNy Data 14 februarie 2016 18:38:02
Problema Combinari Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.98 kb
var v:array[1..30] of integer;
    n,p:integer;

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

 function solutie(k:integer):boolean;
   begin
       if k=p then solutie:=true
       else solutie:=false;
   end;

 procedure afisare(k:integer);
 var i:integer;
   begin
        for i:=1 to k do write(output,v[i],' ');
        writeln(output);
   end;

 procedure backtrack(k:integer);
 var i:integer;
   begin
       for i:=1 to n do
         begin
             v[k]:=i;
             if valid(k)=true then
               begin
                  if solutie(k)=true then afisare(k);
                  backtrack(k+1);
               end;
         end;
   end;

 Begin
   assign(input,'combinari.in');  reset(input);
   assign(output,'combinari.out'); rewrite(output);
   readln(input,n,p);
   backtrack(1);
   close(input);
   close(output);
 end.