Pagini recente » Cod sursa (job #2190803) | Cod sursa (job #2225907) | Cod sursa (job #321834) | Cod sursa (job #1300653) | Cod sursa (job #481398)
Cod sursa(job #481398)
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int NMAX = 100005;
long long N, K, M;
long long perm[NMAX];
void citire()
{
cin >> N >> K;
}
void afla_m()
{
while(1)
{
if(M * (M - 1) / 2 >= K)
return;
M++;
}
}
void rearanjeaza()
{
for(int i = 1 ; i <= N ; i++)
perm[i] = i;
int inc = N - M + 1, sfa = N;
while(inc < sfa)
{
swap(perm[inc], perm[sfa]);
inc++;sfa--;
}
long long dif = (M * (M - 1) / 2) - K, prov = perm[N - M + 1];
for(int i = N - M + 2 ; i <= N - M + 1 + dif ; i++)
swap(prov, perm[i]);
perm[N - M + 1] = prov;
}
void scrie()
{
for(int i = 1 ; i <= N ; i++)
printf("%lld ", perm[i]);
}
int main()
{
freopen("farfurii.in", "r", stdin);
freopen("farfurii.out", "w", stdout);
citire();
afla_m();
rearanjeaza();
scrie();
return 0;
}