Cod sursa(job #1999161)
Utilizator | Data | 10 iulie 2017 14:52:40 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream in("permutari.in");
ofstream out("permutari.out");
short a[10],n;
void print()
{
for(int i=1; i<=n; i++ )
out<<a[i]<<' ';
out<<'\n';
}
int valid(int k)
{
for(int i=1; i<k; i++ )
if(a[i]==a[k]) return 0;
return 1;
}
void backtrack()
{
int k=1; a[1]=0;
while(k)
{
while(a[k]<n)
{
a[k]++;
if(valid(k)) if(k==n) print();
else
{
k++; a[k]=0;
}
}
k--;
}
}
int main()
{
in>>n;
backtrack();
return 0;
}