Cod sursa(job #1436282)

Utilizator CTI_KnightCir Constantin CTI_Knight Data 15 mai 2015 17:39:42
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 1.24 kb
# include <fstream>
using namespace std;
ifstream f("permutari.in");
ofstream g("permutari.out");
int k, st[101], as, ev, n;
/*
    vi=1, vf=n, rel=1
 */

 void init(int k, int st[])
 {
     st[k] = 0;
 }
 void succesor(int k, int st[], int &as)
 {
     if (st[k] < n)
     {
         as = 1;
         st[k] = st[k] + 1;
     }
     else as = 0;
 }
 /*
    Este valida?
 */
 void valid(int k, int st[], int &ev)
 {
     ev = 1;
     for(int i=1; i<k && ev; i++)
        if (st[k] == st[i]) ev = 0;
 }
 // Cand avem solutie
 int solutie(int k, int st[])
 {
     if ( k == n ) return 1;
              else return 0;
 }

 void tipar(int k, int st[])
 {
     for(int i=1; i<=k; i++)
        g << st[i] << " ";
     g << endl;
 }
 void back(int k)//partea fixa
 {
     init(k, st);
     while(k > 0)
     {
         do
         {
             succesor(k, st, as);
             if (as) valid(k, st, ev);
         }while(as && !ev);
         if(as)
         {
             if(solutie(k,st)) tipar(k,st);
             else
             {
                 k++;
                 init(k, st);
             }
         }
         else k--;
     }
 }
 int main()
 {
     f >> n;

     back(1);

     return 0;
 }