Cod sursa(job #395537)

Utilizator dacyanMujdar Dacian dacyan Data 13 februarie 2010 13:42:47
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
using namespace std;

ifstream fin("permutari.in");
ofstream fout("permutari.out");

int n, nrsol, p;
int a[100];
int f[100];

void Perm(int k);
void Write(int k);

int main()
{
    fin >> n;
    for ( p = 1; p <= n; p++)
    Perm(1);
    fout << nrsol << '\n';
    fin.close();
    fout.close();
    return 0;
}

void Perm(int k)
{
    if ( k == p + 1)
    {
        Write(k-1);
        return;
    }    
    for ( int i = a[k-1] + 1; i <= n - p + k ; i++)
    {
        a[k] = i;
       // if ( !f[i])
       // {
       //     f[i] = 1;
            Perm(k+1);
       //     f[i] = 0;
      //  }
    }
}
void Write(int k)
{
    nrsol++;
    for ( int i = 1; i <= k; i++)
        fout << a[i] << ' ';
    fout << '\n';
}