Pagini recente » Cod sursa (job #2373638) | Cod sursa (job #3360582) | Cod sursa (job #3361204) | Cod sursa (job #3361009) | Cod sursa (job #3361145)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
int n, m;
bool used[18];
int sol[18];
bool e_sol(int k){
bool cresc=true;
for(int i=1; i<m; i++)
if(sol[i]>sol[i+1])
cresc=false;
if(k==m+1 && cresc==true)
return true;
return false;
}
void afis(){
for(int i=1; i<=m; i++)
cout<<sol[i]<<" ";
cout<<'\n';
}
bool valid(int nr){
if(used[nr]==true)
return false;
return true;
}
void backtrack(int k){
if(e_sol(k)){
afis();
return;
}
for(int i=1; i<=n; i++){
if(valid(i)){
used[i]=true;
sol[k]=i;
backtrack(k+1);
used[i]=false;
}
}
}
int main()
{
fin>>n>>m;
backtrack(1);
return 0;
}