Pagini recente » Cod sursa (job #3247914) | Clasament taet23 | Cod sursa (job #708331) | Cod sursa (job #2448648) | Cod sursa (job #2227071)
#include <stdio.h>
#pragma optimize GCC("Ofast")
__attribute__((always_inline)) bool next_permutation(int v[], char N)
{
char i = N - 1;
while(i && v[i - 1] > v[i]) --i;
if(i == 0) return false;
char j = N - 1;
while(v[j] < v[i - 1]) --j;
v[i - 1] = v[i - 1] ^ v[j] ^ (v[j] = v[i - 1]);
for(j = N - 1; i < j; ++i, --j)
{
v[i] = v[i] ^ v[j] ^ (v[j] = v[i]);
}
return true;
}
int main()
{
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
int permutation[] = {49, 50, 51, 52, 53, 54, 55, 56}, N, index = -1;
char buffer[685445];
scanf("%d", &N);
do
{
for(int i = 0; i < N; ++i)
{
buffer[++index] = permutation[i];
buffer[++index] = ' ';
}
buffer[++index] = '\n';
}while(next_permutation(permutation, N));
buffer[index] = '\0';
puts(buffer);
return 0;
}