Pagini recente » Cod sursa (job #1966291) | Cod sursa (job #1392867) | Cod sursa (job #2468060) | Cod sursa (job #663474) | Cod sursa (job #380109)
Cod sursa(job #380109)
#include <cstdio>
#include <algorithm>
using namespace std;
int sw, m, n , p[20], i ,j;
void print(void)
{
for(i = 0; i < n; ++i)
printf("%d ", p[i]);
printf("\n");
}
void gen()
{
if(!sw )
{
for (i = n-2; i >= 0 && p[i] > p[i+1]; --i);
if( i < 0 )
sw = 1;
else
{
for (j = n - 1; p[i] > p[j]; --j);
swap(p[i], p[j]);
m = (n - i) / 2;
for(j = 1; j <= m; ++j)
swap(p[i+j], p[n-j]);
}
}
}
int main(void)
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d", &n);
for(i = 0; i < n; ++i)
p[i] = i + 1;
print();
sw = 0;
while(!sw)
{
gen();
if(!sw)
print();
}
fclose(stdin);
fclose(stdout);
return 0;
}