Pagini recente » Cod sursa (job #2326672) | Cod sursa (job #75255) | Cod sursa (job #1801493) | Cod sursa (job #2355793) | Cod sursa (job #2902658)
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
ifstream in("farfurii.in");
ofstream out("farfurii.out");
vector<int> nrs;
int n, pos;
long long k,inv;
in >> n >> k;
in.close();
for (int i = 0; i < n; ++i)
{
nrs.push_back(i + 1);
}
inv = (n-1) * (n - 2) / 2;
pos = 0;
for(int i=0;i<n;++i)
{
if(inv > k)
{
out << nrs[pos] << " ";
++pos;
}
else
{
int disp = k - inv;
k = inv;
int j = pos;
while((disp || nrs[j] < 0) && j < n-1)
{
if (nrs[j] > 0)
--disp;
++j;
}
out << nrs[j] << " ";
nrs[j] = -1;
}
inv -= n - i - 2;
while (nrs[pos] < 0 && pos < n - 1)
++pos;
}
out.close();
return 0;
}