Pagini recente » Cod sursa (job #2096587) | Cod sursa (job #1918939) | Cod sursa (job #745838) | Cod sursa (job #1825667) | Cod sursa (job #366409)
Cod sursa(job #366409)
/*
* File: main.cpp
* Author: virtualdemon
*
* Created on November 21, 2009, 4:18 PM
*/
#include <vector>
#include <fstream>
#include <cstdlib>
#include <iterator>
#include <algorithm>
#define pb push_back
/*
*
*/
using namespace std;
ifstream in;
ofstream out;
vector<int> v;
bool next_permutation()
{
int i;
for( i=v.size()-2; i >= 0 && v[i] > v[i+1]; --i );
if( i < 0 )
return false;
int k;
for( k=v.size()-1; v[i] > v[k]; --k );
v[k]+=v[i];
v[i]=v[k]-v[i];
v[k]-=v[i];
reverse( v.begin()+i+1, v.end() );
return true;
}
int main(int argc, char** argv)
{int N, i;
in.open("permutari.in");
in>>N;
for( i=0; i < N; ++i )
v.pb(i+1);
out.open("permutari.out");
do{
copy( v.begin(), v.end(), ostream_iterator<int>( out, " " ) );
out<<'\n';
}while( next_permutation() );
return EXIT_SUCCESS;
}