Nu aveti permisiuni pentru a descarca fisierul grader_test23.in
Cod sursa(job #804578)
Utilizator | Data | 29 octombrie 2012 22:55:22 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.85 kb |
#include<cstdio>
#define NMAX 10
using namespace std;
short x[10];
inline int cond(short k)
{
for(int i = 1; i < k; ++i)
if(x[i] == x[k]) return 0;
return 1;
}
inline void afis(int k)
{
for(int i = 1; i <= k; ++i) printf("%d ", x[i]);
printf("\n");
}
void back(int n)
{
short k = 1;
x[k] = 0;
do
{
while(k < n + 1 && x[k] < n)
{
x[k]++;
if(cond(k))
{
if(k == n) afis(k);
else
{
++k;
x[k] = 0;
}
}
}
--k;
}
while(k);
}
int main()
{
short n;
freopen("permutari.in","r", stdin);
freopen("permutari.out","w", stdout);
scanf("%d", &n);
back(n);
return 0;
}