Pagini recente » Cod sursa (job #73593) | Cod sursa (job #501616) | Cod sursa (job #1655288) | Cod sursa (job #613307) | Cod sursa (job #3244634)
#include <fstream>
using namespace std;
int dif, poz, ok, n, st, dr, i, v[100001];
long long nr, m;
int main()
{
ifstream f("farfurii.in");
ofstream g("farfurii.out");
f >> n >> nr;
st = 1;
dr = n;
for (i = 1; i <= n; i++)
{
m = n - i;
if (m * (m - 1) / 2 < nr && ok == 0)
{
ok = 1;
dif = m * (m + 1) / 2 - nr;
}
if (ok == 1)
v[i] = dr--;
else
v[i] = st++;
}
for (i = 1; i <= n; i++)
{
if (v[i] == n - dif)
{
poz = i;
break;
}
}
while (dif > 0)
{
swap (v[poz], v[poz - 1]);
poz--;
dif--;
}
for (i = 1; i <= n; i++)
g << v[i] << " ";
return 0;
}