Pagini recente » Cod sursa (job #412571) | Cod sursa (job #1852038) | Cod sursa (job #541850) | Cod sursa (job #346376) | Cod sursa (job #3250491)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long n, m;
long long cautareBinara(long long st, long long dr)
{
if (st >= dr)
{
return st;
}
long long mij = (st + dr) / 2;
if ((mij * (mij - 1)) / 2 == m)
{
return mij;
}
else if ((mij * (mij - 1)) / 2 < m)
{
return cautareBinara(mij + 1, dr);
}
else
{
return cautareBinara(st, mij);
}
}
int main()
{
fin >> n >> m;
long long maxx = sqrt(m);
long long x = cautareBinara(1, maxx + 10);
if (x * (x - 1) / 2 == m)
{
for (long long i = 1; i <= n - x; i++)
{
fout << i << ' ';
}
for (long long i = n; i > n - x; i--)
{
fout << i << ' ';
}
}
else
{
long long aux = (x - 1) * (x - 2) / 2;
aux = m - aux;
for (long long i = 1; i <= n - x; i++)
{
fout << i << ' ';
}
fout << n - x + aux + 1 << ' ';
for (long long i = n; i > n - x; i--)
{
if (i != n - x + aux + 1)
{
fout << i << ' ';
}
}
}
}