Pagini recente » Cod sursa (job #3142095) | Cod sursa (job #359509) | Cod sursa (job #3175517) | Cod sursa (job #268870) | Cod sursa (job #319761)
Cod sursa(job #319761)
/*
* permutari.cpp
*
* Created on: Jun 1, 2009
* Author: stefan
*/
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
inline void afisare(int* stiva, int n)
{
for(int i=0;i<n;++i) cout << stiva[i] << " ";
cout << endl;
}
inline bool valid(int *stiva, int k)
{
int nr[8];
memset(nr,0,sizeof(nr));
for(int i=0; i<=k; ++i)
if(nr[stiva[i]-1]) return false;
else ++nr[stiva[i]-1];
return true;
}
void back(int* stiva, int n, int k)
{
if(k==n) afisare(stiva, n);
else
for(stiva[k]=1;stiva[k]<=n;++stiva[k])
if(valid(stiva, k)) back(stiva, n, k+1);
}
int main()
{
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
int n, stiva[8];
cin >> n;
back(stiva, n, 0);
return 0;
}