Cod sursa(job #1364887)

Utilizator RazzinnatorRazvan Brinzea Razzinnator Data 27 februarie 2015 21:13:11
Problema Submultimi Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include <iostream>
#include <stdio.h>
#include <vector>

using namespace std;

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

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

void backtrack( vector<int> v, int n, int k )
{
    //vector<int> aux;
    int last_element;

    if( v.size() == k )
    {
        print_vector( v );
    }
    else
    {
        if( v.size() != 0 )
        {
            last_element = v.back();
        }
        else
        {
            last_element = 0;
        }

        for( int i = last_element + 1; i <= n; i++ )
        {
            //aux = v;
            //aux.push_back( i );
            v.push_back( i );
            //backtrack( aux, n, k );
            backtrack( v, n, k );
            v.pop_back();
        }
    }
}

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

    for( int i = 1; i <= n; i++ )
    {
        backtrack( v, n, i );
    }

    fclose( f );
    fclose( g );
    return 0;
}