Cod sursa(job #248978)
Utilizator | Data | 27 ianuarie 2009 10:38:48 | |
---|---|---|---|
Problema | Combinari | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include<iostream.h>
#include<fstream.h>
int s[20],n,m;
ofstream g("combinari.out");
int valid(int k)
{int i;
int ok=1;
for(i=1;i<=k-1 && ok;i++)
if(s[i]>s[k] || s[i]==s[k])ok=0;
if(k==1)return 1;
else return ok;
}
void back(int k)
{int i;
if(k==m+1){ for(i=1;i<=m;i++)
g<<s[i]<<" ";
g<<"\n";
}
else { for(i=1;i<=n;i++)
{s[k]=i;
if(valid(k))back(k+1);
}
}
}
int main()
{
ifstream f("combinari.in");
f>>n;
f>>m;
back(1);
return 0;
}