Pagini recente » Cod sursa (job #247231) | Cod sursa (job #143596) | Cod sursa (job #2856437) | Cod sursa (job #1475358) | Cod sursa (job #2301029)
#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, 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;
}