Cod sursa(job #1800126)

Utilizator ArminaMoldovanMoldovan Armina ArminaMoldovan Data 7 noiembrie 2016 13:12:18
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<iostream>
#include<fstream>
using namespace std;// permutarile

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

int s[20], nrsol;
int n;

int succesor(int k)
{
    if(s[k]<n)
    {
        s[k]++;
        return 1;
    }
    else return 0;
}
int valid(int k)
{
    for(int i=1; i<k; ++i)
    {
        if(s[i]==s[k])  return 0;
    }
    return 1;
}
void tipar(int k)
{
    for(int i=1; i<=n; ++i)
        fout<<s[i]<<" ";
    fout<<'\n';
}
void bktr(int k)
{
    s[k]=0;
    while(succesor(k))
        if(valid(k))
            if(k==n)  tipar(k), nrsol++;
            else bktr(k+1);

}
int main()
{
    fin>>n;
    bktr(1);
    return 0;
}