Cod sursa(job #309175)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 29 aprilie 2009 20:15:43
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<fstream.h>  
ifstream f("permutari.in");  
ofstream g("permutari.out");  
  
int st[10],n,i;  
void init(int k)  
{  
    st[k]=0;  
}  
int succesor(int k)  
{  
    if (st[k]<n)  
    {  
        st[k]++;  
        return 1;  
    }  
    return 0;  
}  
int valid(int k)  
{  
    for (i=1; i<k; i++)  
        if (st[i]==st[k]) return 0;  
    return 1;  
}  
int solutie(int k)  
{  
    return k==n;  
}  
void tipar(int k)  
{  
    for (i=1; i<=k; i++)  
    {  
        if (i<k) g<<st[i]<<" ";  
        else g<<st[i];  
    }  
    g<<"\n";  
}  
void back(int k)  
{  
    init(k);  
    while(succesor(k))  
    {  
        if (valid(k))  
            if (solutie(k))  
                tipar(k);  
        else back(k+1);  
    }  
}  
int main ()  
{  
    f>>n;  
    back(1);  
    return 0; 
	f.close();
	g.close(); 
}