Pagini recente » Cod sursa (job #2375078) | Cod sursa (job #2140024) | Cod sursa (job #2666722) | Cod sursa (job #2534234) | Cod sursa (job #2605503)
#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int n, k, i, j = 1, x, maxi, minj, temp,
v[100005] {}, rez[100005] {}, poz[100005];
freopen("farfurii.in", "r", stdin);
freopen("farfurii.out", "w", stdout);
scanf("%d%d", &n, &k);
for(i = 1; i <= n; ++i) {
rez[i] = i;
poz[i] = i;
}
while(v[j] < k)
v[++j] = v[j-1] + j-1;
k -= v[j-1];
for(i = n-j+2, x = n; i <= n; ++i, --x) {
rez[i] = x;
poz[x] = i;
}
//for(i = 1; i <= n; ++i)
//printf("%d ", rez[i]);
while(k--)
for(i = n; i >= 1; --i)
for(j = i+1; j <= n; ++j)
if(poz[i] < poz[j]) {
swap(rez[poz[i]], rez[poz[j]]);
swap(poz[rez[poz[i]]], poz[rez[poz[j]]]);
i = 0, j = n+1;
}
for(i = 1; i <= n; ++i)
printf("%d ", rez[i]);
}