Cod sursa(job #171278)

Utilizator andy41pislaru andrei andy41 Data 3 aprilie 2008 22:39:57
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
program p1;   
type t=1..18;   
var f1,f2:text;   
    n,k,i,j:t;   
    a:array[1..18] of t;   
    ok:boolean;   
    begin  
    assign(f1,'combinari.in');   
    reset(f1);   
    readln(f1,n,k);   
    close(f1);   
    for i:=1 to k do  
    a[i]:=i;   
    assign(f2,'combinari.out');   
    rewrite(f2);   
    if n=k then  
    begin  
    for i:=1 to n do  
    write(f2,a[i],' ');   
    end  
    else  
    begin  
    repeat  
    ok:=true;   
    for i:=1 to k do  
    write(f2,a[i],' ');   
    writeln(f2);   
    inc(a[k]);   
    if a[k]=n+1 then  
    for i:=k downto 2 do begin  
    if a[i]>=n-k+i+1 then  
    begin  
    inc(a[i-1]);   
    for j:=i to k do  
    a[j]:=a[j-1]+1;   
    end;   
    end;   
    if a[1]=n-k+1 then  
    ok:=false;   
    until ok=false;   
    for i:=1 to k do  
    write(f2,a[i],' ');   
    end;   
    close(f2);   
    end.