Cod sursa(job #2514571)

Utilizator Ovidiu-AntonioOvidiu-Antonio Matei Ovidiu-Antonio Data 26 decembrie 2019 14:01:18
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>

int k, st[9], valid, succ, i, n;

using namespace std;

void succesor()
{
    if(st[k]<n)
    {
        st[k]++;
        succ=1;
    }
    else
        succ=0;
}

void verificare()
{
    valid=1;
    for(i=0;i<k;i++)
        if(st[i]==st[k])
            valid=0;
}

void backt()
{
    ifstream fin("permutari.in");
    ofstream fout("permutari.out");
    k=1;
    st[k]=0;
    while(k>0)
    {
        do
        {
            succesor();
            if(succ==1)
                verificare();
        }while(succ==1&&valid==0);
        if(succ==1)
        {
            if(k==n)
            {
                for(i=1;i<=n;i++)
                    fout<<st[i]<<" ";
                fout<<"\n";
            }
            else
            {
                k++;
                st[k]=0;
            }
        }
        else
            k--;
    }
}

int main()
{
    ifstream fin("permutari.in");
    ofstream fout("permutari.out");
    fin>>n;
    backt();
    return 0;
}