Cod sursa(job #3245628)

Utilizator WiseAndrei4Vetrila Andrei WiseAndrei4 Data 29 septembrie 2024 19:26:23
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("permutari.in");
ofstream gout("permutari.out");
bool valid(int sol[],int k)
{
    for(int i=1; i<k; i++)if(sol[i]==sol[k])return false;
    return true;
}
void afis(int sol[],int n)
{
    for(int i=1; i<=n; i++)gout<<sol[i]<<' ';
    gout<<'\n';
}
void backtracking(int n)
{
    int v[n+1];
    int k=1;
    v[k]=0;
    while(k>0)
    {
        bool gasit=false;
        while(gasit==false&&v[k]<n)
        {
            v[k]++;
            gasit=valid(v,k);
        }
        if(gasit)if(k==n)afis(v,n);
            else v[++k]=0;
        else k--;
    }
}
int main()
{
    int n;
    fin>>n;
    backtracking(n);
}