Cod sursa(job #2403949)

Utilizator EricEric Vilcu Eric Data 12 aprilie 2019 09:18:46
Problema Planeta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
int n,a[32];
unsigned long long v[32],fact[32],k;
int incr(int j)
{
    int k=j+1;
    while(v[k])++k;
    return k;
}
int main()
{
    f>>n>>k;fact[0]=1;
    for(int i=1;i<=20;++i)fact[i]=fact[i-1]*i;
    for(int i=21;i<=30;++i)fact[i]=-1;
    for(int i=1;i<=n;++i)
    {
        a[i]=incr(a[i]);
        while(fact[n-i]<k)
        {
            a[i]=incr(a[i]);
            k-=fact[n-i];
        }
        v[a[i]]=1;
    }
    for(int i=1;i<=n;++i)g<<a[i]<<' ';
}