Pagini recente » Cod sursa (job #3291542) | Cod sursa (job #1806493) | Cod sursa (job #1405287) | Cod sursa (job #2825315) | Cod sursa (job #1450229)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("permutari.in");
ofstream out("permutari.out");
bool as,ev; int n,k;
void valid(int k, int v[], bool &ev)
{
int i;
ev = true;
for( i = 0; i < k; ++i)
if (v[i] == v[k])
{
ev = false;
break;
}
}
void suc(int k, int v[], bool &as)
{
if( v[k]< n)
{
v[k]++;
as = true;
}
else
as = false;
}
void tipar(int k, int v[])
{
int i;
for(i = 0; i < n; ++i)
out << v[i] <<" ";
out << "\n";
}
bool solutie(int k)
{
if(k == n-1)
return 1;
return 0;
}
int main()
{
in >> n;
int v[n];
k = 0;
v[k] = 0;
while(k > -1)
{
do
{
suc(k,v,as);
if(as)
valid(k,v,ev);
}
while( as && !(as && ev));
if (as)
if(solutie(k))
tipar(k,v);
else
{
k++;
v[k] = 0;
}
else
{
v[k] = 0;
k--;
}
}
return 0;
}