Pagini recente » Cod sursa (job #3175678) | Cod sursa (job #2575246) | Cod sursa (job #1553719) | Diferente pentru implica-te/arhiva-educationala intre reviziile 168 si 167 | Cod sursa (job #1098496)
#include<fstream>
using namespace std;
#define N 20
ifstream f("permutari.in");
ofstream g("permutari.out");
bool isValid(short A[], short i, short n)
{
short frecv[N];
for(int j = 0; j <= n; j++)
{
frecv[j] = 0;
}
for(int j = 1; j <= i; j++)
{
if (frecv[A[j]])
{
return false;
}
frecv[A[j]]++;
}
return true;
}
void print(short A[], short n)
{
for(int i = 1; i <= n; i++)
{
g << A[i] << " ";
}
g << endl;
}
void perm(short A[], short i, short n)
{
for(int j = 1; j <= n; j++)
{
A[i] = j;
if (isValid(A, i, n))
{
if (i == n)
{
print(A, n);
}
else
{
perm(A, i + 1, n);
}
}
}
}
int main()
{
short A[N], n;
f >> n;
perm(A, 1, n);
}