Pagini recente » Cod sursa (job #398442) | Cod sursa (job #671632) | Cod sursa (job #1754143) | Cod sursa (job #1062792) | Cod sursa (job #369476)
Cod sursa(job #369476)
/*
* File: main.cpp
* Author: virtualdemon
*
* Created on November 28, 2009, 2:38 PM
*/
#include <vector>
#include <fstream>
#include <cstdlib>
#include <iterator>
#include <algorithm>
#define pb push_back
/*
*
*/
using namespace std;
vector< unsigned int > v;
inline bool swap( unsigned int& a, unsigned int& b )
{
a+=b;
b=a-b;
a-=b;
}
int main(int argc, char** argv)
{int n, i, k;
ifstream in("permutari.in");
in>>n;
for( i=0; i < n; ++i )
v.pb( i+1 );
ofstream out("permutari.out");
while( true )
{
copy( v.begin(), v.end(), ostream_iterator<unsigned int>( out, " " ) );
out<<'\n';
for( i=n-2; i >= 0 && v[i] > v[i+1]; --i );
if( i < 0 )
break;
for( k=n-1; k>= 0 && v[i] > v[k]; --k );
swap( v[i], v[k] );
reverse( v.begin()+i+1, v.end() );
}
return (EXIT_SUCCESS);
}