Cod sursa(job #2845755)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 8 februarie 2022 11:53:55
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

#include <vector>



int main(){

    std::ifstream fin("permutari.in");

    std::ofstream fout("permutari.out");

    unsigned short n;

    fin>>n;

    short i=0;

    std::vector<unsigned short> k(n,0);

    std::vector<bool> ink(n+1,false); ink[0]=true;

    while(i>-1){

        unsigned short j;

        for(j=k[i];j<=n&&ink[j];++j);

        if(j>n){ink[k[i]]=false; k[i]=0; i--;}

        else{

            if(k[i]!=0) ink[k[i]]=false;

            k[i]=j; ink[j]=true;

            if(i==n-1){

                for(unsigned short x=0;x<n;++x) fout<<k[x]<<' ';

                fout<<'\n';

            }

            else i++;

        }

    }

}