Cod sursa(job #1365810)
Utilizator | Data | 28 februarie 2015 15:48:04 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <bits/stdc++.h>
using namespace std;
int v[20],i,j,N,K;
void write()
{
for(int i=1 ; i<=N ; ++i)
cout<<v[i]<<' ';
cout<<'\n';
}
bool valid(int k)
{
for(int i=1 ; i<k ; ++i)
if(v[i]==v[k])
return false;
return true;
}
void backtracking(int k)
{
for(int i=1 ; i<=N ; ++i)
{
v[k]=i;
if(valid(k))
if(k==N)
write();
else
backtracking(k+1);
}
}
int main()
{
cin>>N;
backtracking(1);
return 0;
}