Cod sursa(job #1844033)
| Utilizator | Data | 9 ianuarie 2017 17:41:53 | |
|---|---|---|---|
| Problema | Generare de permutari | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream inf("permutari.in");
ofstream outf("permutari.out");
int n, p[10], i, j;
int nextp();
int main()
{
inf>>n;
for(i=1; i<=n; i++)
p[i]=i;
for(;;)
{
for(i=1; i<=n; i++)
outf<<p[i]<<' ';
outf<<'\n';
if(!nextp())
break;
}
return 0;
}
int nextp()
{
for(i=n-1; i;i--)
if(p[i]<p[i+1])
break;
for(j=n; j; j--)
if(p[j]>p[i])
break;
swap(p[i], p[j]);
reverse(p+i+1, p+n+1);
return i;
}
