Cod sursa(job #1362901)

Utilizator RazzinnatorRazvan Brinzea Razzinnator Data 26 februarie 2015 16:34:44
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <vector>
#include <stdio.h>
#include <algorithm>

using namespace std;

FILE *f = fopen( "permutari.in", "r" );
FILE *g = fopen( "permutari.out", "w" );

void print_vector( vector<int> v )
{
    for( int i = 0; i < v.size(); i++ )
    {
        fprintf( g, "%d ", v[i] );
    }
    fprintf( g, "\n" );
}

void backtrack( vector<int> v, int max_size )
{
    if( v.size() == max_size )
    {
        print_vector( v );
    }
    else
    {
        for( int i = 1; i <= max_size; i++ )
        {
            if( find( v.begin(), v.end(), i ) == v.end() )
            {
                v.push_back( i );
                backtrack( v, max_size );
                v.pop_back();
            }
        }
    }
}

int main()
{

    int n;
    fscanf( f, "%d", &n );
    vector<int> v;
    backtrack( v, n );

    return 0;
}