Cod sursa(job #2037146)

Utilizator viorel12Mucenic Ion Viorel viorel12 Data 11 octombrie 2017 19:52:29
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("permutari.in");
ofstream out("permutari.out");
int n,k,ok,v[100];
void afisare()
{
    int i;
    for(i=1;i<=n;i++)
        out<<v[i]<<" ";
    out<<'\n';
}
void cont(int k,int &ok)
{
    int i;
    ok=1;
    for(i=1;i<=k-1;i++)
        if(v[k]==v[i])
        ok=0;
}
int succesor(int k)
{
    if(v[k]<n)
    {
        v[k]=v[k]+1;
        return 1;
    }
    else
        return 0;
}
int main()
{
    in>>n;
    k=1;
    v[k]=0;
    while(k>0)
    {
        ok=0;
        while(!ok&&succesor(k))
            cont(k,ok);
        if(!ok)
            k--;
        else if(k==n)
            afisare();
        else
        {
            k++;
            v[k]=0;
        }
    }
    return 0;
}