Cod sursa(job #1677276)

Utilizator flibiaVisanu Cristian flibia Data 6 aprilie 2016 14:25:54
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("permutari.in");
ofstream fout("permutari.out");

int n, k, st[10]; int ev, as;

void init()
{
     st[k] = 0; 
}

int succ()
{
    if(k < n)
    {
         st[k]++;
         return 1;
    }
    else return 0;
}

int valid()
{
    for(int i = 1; i <= n; i++)
            if(st[k] == st[i]) return 0;
            else return 1;
}

int sol()
{
    if(k == n) return 1; else return 0;
}

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

void back()
{
     k = 1;
     init();
     while(k > 0)
     {
             do
             {
                 as = succ();
                 if(as == 1) ev = valid();
             } while(as == 1 && ev == 0);
             if(as == 1)
             if(sol() == 1) print();
             else {k++; init();}
             else k--;
     }    
}

int main()
{
    
    fin >> n;
    back();
    //cout << n;
    system ("PAUSE");
    return 0;
}