Pagini recente » Cod sursa (job #2607516) | Cod sursa (job #1631836) | Cod sursa (job #287756) | Cod sursa (job #241117) | Cod sursa (job #799978)
Cod sursa(job #799978)
#include <cstdio>
using namespace std;
typedef long long int64;
const int N = 100005;
int n, last;
int64 inv, k;
int sol[N];
bool pus[N];
int main()
{
freopen ("farfurii.in", "r", stdin);
freopen ("farfurii.out", "w", stdout);
scanf("%d %d", &n, &k);
for (int i = 1; i <= n; ++i) {
inv = 1LL * (n - i) * (n - i - 1) / 2LL;
if (inv < k) {
sol[i] = i + k - inv;
pus[i + k - inv] = true;
last = i;
break;
}
else {
sol[i] = i;
pus[i] = true;
}
last = i;
}
for (int i = n; i > 0; --i)
if (!pus[i])
sol[++last] = i;
for (int i = 1; i <= n; ++i)
printf("%d ", sol[i]);
}