Pagini recente » Cod sursa (job #1706337) | Cod sursa (job #650445) | Cod sursa (job #1280256) | Cod sursa (job #2766508) | Cod sursa (job #743819)
Cod sursa(job #743819)
#include <fstream>
int main (void)
{
char n;
std::ifstream input("permutari.in");
input.get(n);
input.close();
n -= '0';
char s [8], *generator(s), *limit(s + n);
{
char counter('1');
do
{
*generator = counter;
++counter;
++generator;
}
while (generator < limit);
}
char *last(limit - 1), *end(last - 1), *it, aux;
std::ofstream output("permutari.out");
while (true)
{
generator = s;
while (true)
{
output.put(*generator);
if (generator == last)
break;
output.put(' ');
++generator;
}
output.put('\n');
generator = end;
while (generator >= s && *generator > generator[1])
--generator;
if (generator < s)
break;
it = last;
aux = *generator;
while (*it < aux)
--it;
*generator ^= *it;
*it ^= *generator;
*generator ^= *it;
++generator;
it = last;
while (generator < it)
{
*generator ^= *it;
*it ^= *generator;
*generator ^= *it;
++generator;
--it;
}
}
output.close();
return 0;
}