Pagini recente » Cod sursa (job #1113884) | Cod sursa (job #1893759) | Cod sursa (job #2933099) | Cod sursa (job #3039584) | Cod sursa (job #3250346)
#include <fstream>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int n, m;
int cautareBinara(int st, int dr)
{
if (st >= dr)
{
return st;
}
int 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;
int x = cautareBinara(1, m);
if (x * (x - 1) / 2 == m)
{
for (int i = 1; i <= n - x; i++)
{
fout << i << ' ';
}
for (int i = n; i > n - x; i--)
{
fout << i << ' ';
}
}
else
{
int aux = (x - 1) * (x - 2) / 2;
aux = m - aux;
for (int i = 1; i <= n - x; i++)
{
fout << i << ' ';
}
fout << n - x + aux + 1 << ' ';
for (int i = n; i > n - x; i--)
{
if (i != n - x + aux + 1)
{
fout << i << ' ';
}
}
}
}