Pagini recente » Cod sursa (job #683527) | Cod sursa (job #852800) | Cod sursa (job #1005838) | Cod sursa (job #1002012) | Cod sursa (job #1893950)
#include <bits/stdc++.h>
using namespace std;
int a[16], n;
int main()
{
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int i, j, p, minim;
fin >> n;
for (i = 1; i <= n; i++)
a[i] = i;
/**
1234567
1234576
1234657
1234675
1234756
1234765
1235467
*/
int gata = 0;
while (gata == 0)
{
/// afisare
for (i = 1; i <= n; i++)
fout << a[i] << " ";
fout<<"\n";
/// urmatoarea permutare
i = n;
while (i > 1 && a[i] < a[i - 1])
i--;
i--;
if (i == 0) gata = 1;
else
{
/// caut in a[i+1..n] cea mai mica valoarea
/// mai mare decat a[i]
p = i + 1; minim = a[i + 1];
for (j = i + 1; j <= n; j++)
if (a[j] > a[i] && a[j] < minim)
{
minim = a[j];
p = j;
}
swap(a[i], a[p]);
sort(a + i + 1, a + n + 1);
}
}
fout.close();
return 0;
}