Cod sursa(job #2242494)

Utilizator AndrulianDin Iulian Andrulian Data 18 septembrie 2018 19:41:02
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
#include <bits/stdc++.h>

using namespace std;
int a[10],x[10],n,i,k,nr;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
void backt();
void  solutie();
int valid(int k);
int main()
{
    fin>>n;
    backt();
    return 0;
}
int valid(int k)
{
    for(i=1; i<=k-1; i++)
        if(x[k]==x[i])return 0;
    return 1;
}
void solutie()
{
    //cout<<++nr<<") ";
    for(i=1; i<=n; i++)
        fout<<x[i]<<" ";
    fout<<"\n";
}
void backt()
{
    /// for(k=1; k<=n; k++)x[k]=0;
    k=1;
    while(k>0)
    {
        if(k==n+1)///daca s-a generat o solutie se afiseaza iar apoi se trece la generarea unei alte solutii
        {
            solutie();
            k--;
        }
        else
        {
            if(x[k]<=n-1)
            {
                ///daca nu am terminat de generat posibilitatile vom continua sa alegem din multimea vectorului a
                ///pe urmatorul numar
                x[k]++;
                ///daca este verificata conditia interna
                if(valid(k))k++;
            }
            else
            {
                ///
                x[k]=0;
                k--;
            }
        }

    }
}