Pagini recente » Cod sursa (job #2655066) | Cod sursa (job #2170913) | Cod sursa (job #2628621) | Cod sursa (job #2892725) | Cod sursa (job #1555350)
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
long long fact[500],k;
int n;
bool viz[100];
int perm[100];
inline void Perm_k()
{
for(int j=1;j<=n;++j)
for(int i=1;i<=n;++i)
{
if(viz[i]==1)
continue;
if(k <= fact[n-j])
{
perm[j] = i;
viz[i] = 1;
break;
}
k -= fact[n-j];
}
for(int i=1;i<=n;++i)
g<<perm[i]<<" ";
}
inline void k_Perm()
{
k=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<perm[i];j++)
{
if(viz[j]==1)
continue;
k+=fact[n-i];
}
viz[perm[i]]=1;
}
g<<k;
}
int main()
{
f>>n;
for(int i=1;i<=n;i++)
f>>perm[i];
fact[0] = 1;
for(int i=1;i<=n;i++)
fact[i] = 1LL*fact[i-1]*i;
k_Perm();
return 0;
}