Pagini recente » Cod sursa (job #371908) | Cod sursa (job #3205391) | Cod sursa (job #1089610) | Cod sursa (job #1039973) | Cod sursa (job #2242494)
#include <bits/stdc++.h>
using namespace std;
int a[10],x[10],n,i,k,nr;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
void backt();
void solutie();
int valid(int k);
int main()
{
fin>>n;
backt();
return 0;
}
int valid(int k)
{
for(i=1; i<=k-1; i++)
if(x[k]==x[i])return 0;
return 1;
}
void solutie()
{
//cout<<++nr<<") ";
for(i=1; i<=n; i++)
fout<<x[i]<<" ";
fout<<"\n";
}
void backt()
{
/// for(k=1; k<=n; k++)x[k]=0;
k=1;
while(k>0)
{
if(k==n+1)///daca s-a generat o solutie se afiseaza iar apoi se trece la generarea unei alte solutii
{
solutie();
k--;
}
else
{
if(x[k]<=n-1)
{
///daca nu am terminat de generat posibilitatile vom continua sa alegem din multimea vectorului a
///pe urmatorul numar
x[k]++;
///daca este verificata conditia interna
if(valid(k))k++;
}
else
{
///
x[k]=0;
k--;
}
}
}
}