Pagini recente » Cod sursa (job #1096196) | Cod sursa (job #2146344) | Cod sursa (job #1221696) | Cod sursa (job #1554532) | Cod sursa (job #1779721)
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long n, k;
fin >> n >> k;
vector<int> perm(n + 1);
for (int i = 1; i <= n; ++i)
perm[i] = i;
for (int i = 1; i < n && k > 0; ++i) {
long long len = n - i;
if (len * (len - 1) / 2 >= k)
continue;
int poz = i + 1;
long long len2 = n - i - 1;
while (len2 * (len2 - 1) / 2 + poz - i < k) {
++poz;
++len2;
}
k -= poz - i;
while (poz != i) {
swap(perm[poz], perm[poz - 1]);
--poz;
}
}
for (int i = 1; i <= n; ++i)
fout << perm[i] << " ";
return 0;
}