Cod sursa(job #2528332)

Utilizator CarlaDianaCarla Diana CarlaDiana Data 21 ianuarie 2020 19:17:35
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
using namespace std;
int ams,ev,n,st[10];
ifstream fin ("permutari.in");
ofstream fout ("permutari.out");

void tipar(int niv)
{
    for(int i=1;i<=niv;i++)
    {
        fout<<st[i]<<" ";
    }
    fout<<'\n';
}


int pune_val(int niv)
{
    int ok=0;
    if(niv<=n&&st[niv]<n)
    {
        ok=1;st[niv]++;
    }
    return ok;
}

int validare(int niv)
{
    int i,ok;ok=1;
    for(i=1;i<niv;i++)
        if(st[i]==st[niv])
            ok=0;
    return ok;
}

int solutie(int niv)
{
    if(niv==n) return 1;
    return 0;
}



int main()
{
    fin>>n;
    int k=1;
    while(k>0)
    {
        do{ams=pune_val(k);
        if(ams==1)
            ev=validare(k);
        }while(ams==1&&ev==0);
        if(ams==1&&ev==1)
        {
            if(solutie(k)==1) tipar(k);
            else{st[++k]=0;}
        }
        else
            k--;
    }
    return 0;
}