Cod sursa(job #227237)
Utilizator | Mathe Bogdan Zilla | Data | 3 decembrie 2008 23:01:13 |
---|---|---|---|
Problema | Combinari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <stdio.h>
FILE *f=fopen("combinari.in","r"),*g=fopen("combinari.out","w");
int n,m,st[18];
void back(int);
void tiparire();
int ok(int);
int main()
{
fscanf(f,"%d%d",&n,&m);
back(0);
return 0;
}
void back(int k)
{
int i;
if(k==m)
tiparire();
else
for(i=1;i<=n;++i)
{
st[k]=i;
if(ok(k))
back(k+1);
}
}
int ok(int k)
{
if(k==0)
return 1;
if(st[k]>st[k-1])
return 1;
return 0;
}
void tiparire()
{
int i;
for(i=0;i<m;++i)
fprintf(g,"%d ",st[i]);
fprintf(g,"\n");
}