Cod sursa(job #227195)
Utilizator | Mathe Bogdan Zilla | Data | 3 decembrie 2008 21:58:01 |
---|---|---|---|
Problema | Combinari | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <stdio.h>
FILE *f=fopen("combinar.in","r"),*g=fopen("combinar.out","w");
int n,m,st[19];
void back(int);
void tiparire();
int ok(int);
int main()
{
fscanf(f,"%d%d",&n,&m);
back(1);
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(st[k]>st[k-1])
return 1;
return 0;
}
void tiparire()
{
int i;
for(i=1;i<=m;++i)
fprintf(g,"%d ",st[i]);
fprintf(g,"\n");
}