Pagini recente » Cod sursa (job #1014378) | Cod sursa (job #655701) | Cod sursa (job #1538260) | Cod sursa (job #1334854) | Cod sursa (job #1341515)
#include<fstream>
using namespace std;
ifstream fin ("permutari.in");
ofstream fout ("permutari.out");
int st[100],v[100];
int n;
int afisare(int k)
{
for(int i=1;i<=n;i++)
fout<<st[i]<<" ";//daca vrem sa perm elem vectorului cout<<v[st[i]]
fout<<'\n';
}
bool validare (int k)
{
//verificam daca nivelul elem de pe niv k este diferit de toate celelalte
for(int i=1;i<k;i++)
if(st[k]==st[i])return 0;
return 1;
}
void back(int k)
{
//parcurgerea tuturor elementelor ce pot fi memorate pe nivelul k
for(int i=1;i<=n;i++)
{
st[k]=i;//memoram val pe niv k
if(validare (k))//verificam daca pe nivelul k valoarea indeplinese cond spec
{if (k==n)//am ajuns la solutie
afisare(k);
else// e valid dar nu a ajuns la solutie
back(k+1);}
}
}
int main()
{
fin>>n;
//for(int i=1;i<=n;i++)//daca citim elem unui vector pe care vrem sal permutam
//cin>>v[i];
back (1);
return 0;
}