Pagini recente » Cod sursa (job #370900) | Cod sursa (job #1518690) | Cod sursa (job #2944919) | Cod sursa (job #2130121) | Cod sursa (job #312778)
Cod sursa(job #312778)
#include <cstdio>
#include <algorithm>
using namespace std;
long n, k, i, m, p;
int main(void)
{
freopen("farfurii.in", "r", stdin);
freopen("farfurii.out", "w", stdout);
scanf("%ld %ld", &n, &k);
for(p = 1; p < n; p *= 2);
for(m = 0; p > 0; p/=2)
if((m + p <= n) && ((m + p) * (m + p-1) <= 2*k))
m += p;
k -= m*(m-1)/2;
if(!k)
{
for(i = 1; i <= n - m; ++i)
printf("%ld ", i);
for(i = n; i > n - m; --i)
printf("%ld ", i);
printf("\n");
}
else
{
k = m - k;
m++;
for(i = 1; i <= n - m; ++i)
printf("%ld ", i);
printf("%ld", n-k);
for(i = n; i > n - k; --i)
printf("%ld ", i);
for(i = n - k - 1; i > n - m; i--)
printf("%ld ", i);
printf("\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}