Cod sursa(job #2640153)

Utilizator PushkinPetolea Cosmin Pushkin Data 5 august 2020 14:16:17
Problema Generare de permutari Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f("permutari.in");
ofstream g("permutari.out");

vector<int> v;
bool valid(int k)
{
    for(int i=0; i<k; i++)
        if(v[i]==v[k])
            return 0;
    return 1;
}
void perm(int n)
{
    int k;
    v.resize(n);
    k=0;
    v[k]=1;
    while(k>=0)
    {
        while(k<n && v[k]<=n)
        {
            if(valid(k))
                if(k==n-1)
                {
                    for(auto a:v)
                        g<<a<<' ';
                    g<<"\n";
                    k--;
                    v[k]++;
                }
                else
                {
                    k++;
                    v[k]=1;
                }
            else
                v[k]++;
        }
        k--;
        v[k]++;
    }
}
int main()
{
    int n;
    f>>n;
    perm(n);
    f.close();
    g.close();
    return 0;
}