Cod sursa(job #1820741)

Utilizator ionutmargineancnuMarginean Ionut ionutmargineancnu Data 2 decembrie 2016 10:48:54
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>
using namespace std;
ifstream fin ("permutari.in");
ofstream fout ("permutari.out");
int st[15], n, suc , val ;
int valoare( int niv )
{ int ok=0;

  if(niv<=n && st[niv]<n )
  {
      st[niv]++;
      ok=1;
  }
 return ok;
}
inline void tipar( int niv )
{int i;
    for( i=1; i<=niv; i++)
        fout<<st[i]<<" ";
    fout<<"\n";
}
int valid( int niv )
{int i,ok=1;
    for(i=1;i<niv;i++)
        if(st[i]==st[niv])
            ok=0;
    return ok;
}
int solutie( int niv )
{
    return (niv==n);
}
void backu()
{int k=1;

    while(k>0)
    {
        do
        {
           suc=valoare(k);
           if(suc)
                val=valid(k);
        }while (suc && !val);

        if (suc && val)
        {
            if(solutie(k)) tipar(k);
            else
            {
                k++;
                st[k]=0;
            }
        }
        else
        {
            k--;
        }
    }
}
int main()
{
    fin>>n;
    backu();
    return 0;
}