Pagini recente » Diferente pentru utilizator/danh intre reviziile 1 si 4 | Atasamentele paginii Profil stefanst77 | Diferente pentru problema/petarbore intre reviziile 6 si 37 | Monitorul de evaluare | Cod sursa (job #1800126)
#include<iostream>
#include<fstream>
using namespace std;// permutarile
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int s[20], nrsol;
int n;
int succesor(int k)
{
if(s[k]<n)
{
s[k]++;
return 1;
}
else return 0;
}
int valid(int k)
{
for(int i=1; i<k; ++i)
{
if(s[i]==s[k]) return 0;
}
return 1;
}
void tipar(int k)
{
for(int i=1; i<=n; ++i)
fout<<s[i]<<" ";
fout<<'\n';
}
void bktr(int k)
{
s[k]=0;
while(succesor(k))
if(valid(k))
if(k==n) tipar(k), nrsol++;
else bktr(k+1);
}
int main()
{
fin>>n;
bktr(1);
return 0;
}