Cod sursa(job #227199)
Utilizator | Mathe Bogdan Zilla | Data | 3 decembrie 2008 22:01:55 |
---|---|---|---|
Problema | Combinari | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <stdio.h>
FILE *f=fopen("combinar.in","r"),*g=fopen("combinar.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");
}