Cod sursa(job #1022489)

Utilizator alex-florinHarbuzariu Alexandru Florin alex-florin Data 5 noiembrie 2013 16:35:48
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
using namespace std;
ifstream f("permutari.in");
ofstream g("permutari.out");
int n, tab[20000];
int solutie(int k)
{ return k==n+1; }
void afis()
{
    for(int i=1; i<=n; i++)
        g<<tab[i]<<" ";
    g<<'\n';
}
void initiere(int k)
{ tab[k]=0; }
int succesor(int k)
{
    if(tab[k]<n)
    {
        tab[k]++;
        return 1;
    }
    return 0;
}
int valid(int k)
{
    for(int i=1; i<k; i++)
        if(tab[i]==tab[k])
        return 0;
    return 1;
}
void bck(int k)
{
    if(solutie(k)) afis();
    else
    {
        initiere(k);
        while(succesor(k))
            if(valid(k))
            bck(k+1);
    }
}
int main()
{
    f>>n;
    bck(1);
    f.close(); g.close();
    return 0;
}