Pagini recente » Cod sursa (job #1964353) | Cod sursa (job #338216) | Cod sursa (job #1492207) | Cod sursa (job #662851) | Cod sursa (job #2301033)
#include <fstream>
using namespace std;
ifstream f("farfurii.in");
ofstream g("farfurii.out");
int N, A[100001];
unsigned long long K;
void foo (int poz, unsigned long long k) {
if (poz == N) {
A[poz] = poz;
return ;
}
unsigned long long val = (N - poz) * (N - poz - 1) / 2;
if (val >= k) {
A[poz] = poz;
foo(poz + 1, k);
}
else {
A[poz] = poz + (k - val);
int pozi = poz;
for (int i = N; i > A[pozi]; --i)
A[++poz] = i;
for (int i = A[pozi] - 1; i >= pozi; --i)
A[++poz] = i;
}
}
int main()
{
f >> N >> K;
foo(1, K);
for (int i = 1; i <= N; ++i)
g << A[i] << ' ';
return 0;
}