Cod sursa(job #2038374)

Utilizator paulm238Madaras Paul paulm238 Data 13 octombrie 2017 17:22:16
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
int n,st[100],k;
using namespace std;
int valid (int k)
{
    int i;
    for(i=0; i<k; i++)
    {
        if(st[k]==st[i])
            return 0;
    }
    return 1;
}
int tipar(int k)
{
    int i;
    for(i=0; i<=k; i++)
        cout<<st[i]<<" ";
    cout<<endl;
}
int sol (int k)
{
    return k==n-1;
}
int exist(int k)
{
    return st[k]<n;
}
void backs(int n)
{
    int k;
    k=0;
    while(k>=0)
    {
        if(exist(k))
        {
            st[k]++;
            if(valid(k))
            {
                if(sol(k))
                    tipar(k);
                else
                {
                    k++;
                    st[k]=0;
                }
            }
        }
        else
            k--;
    }
}

int main()
{
    cin>>n;
    backs(n);
    return 0;
}