Pagini recente » Cod sursa (job #335878) | Cod sursa (job #169694) | Cod sursa (job #1965742) | Cod sursa (job #81047) | Cod sursa (job #1401722)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int v[100000],posSchimb,y,i,j,n,k,nr,x;
long long int d;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int main()
{
if(false)
{/*
cin>>n;
for(i=1 ; i<=n ; ++i)
v[ i ] = i;
do
{
k = 0;
for( i=1 ; i<n ; ++i )
for( j=i+1 ; j<=n ; ++j )
if( v[ i ] > v[ j ] )
++k;
if( freq[ k ] == 0 )
{
freq[ k ] = 1;
cout<<k<<" ";
for(i=1 ; i<=n ; ++i)
cout<<v[i]<<' ';
cout<<'\n';
}
}
while(next_permutation(v+1,v+n+1));*/
}
fin>>n>>k;
for(i=1 ; d<k ; ++i )
d += i;
posSchimb = i;
++j;
for( i=1 ; i<=n-posSchimb ; ++i , ++j )
v[ j ] = i;
y = i;
for( i = n ; i >= y ; --i , ++j )
v[ j ] = i;
posSchimb = n - posSchimb + 1;
if( d != k )
{
nr = d - k;
x = v[ posSchimb ];
swap( v[ posSchimb ] , v[ posSchimb + nr ] );
for(i=posSchimb + nr ; i>posSchimb ; --i)
v[ i ] = v[ i - 1 ];
v[posSchimb + 1] = x;
}
for(i=1 ; i<=n ; ++i)
fout<<v[i]<<' ';
return 0;
}