Pagini recente » Cod sursa (job #3204289) | Cod sursa (job #2495368) | Cod sursa (job #282828) | Cod sursa (job #948780) | Cod sursa (job #1598210)
#include <fstream>
#include <queue>
#define NMAX 100005
using namespace std;
unsigned long long sol[NMAX];
int main()
{
long long N, K, V[NMAX], i, sum, max, pIndex, element;
ifstream f("farfurii.in");
f >> N >> K;
f.close();
i = 1;
sum = 0;
V[N] = 0;
while (sum + i <= K)
{
sum += V[N - i] = i;
i++;
}
max = i;
pIndex = N-i;
element = N;
for (i = pIndex + 1; i <= N ; i++)
{
if (V[i - 1] == K - sum)
{
sol[i] = element - 1;
sol[pIndex] = element;
element -= 2;
}
else
{
sol[i] = element--;
}
}
element = 1;
ofstream g("farfurii.out");
long long startIndex = 1, endIndex = N;
if (N == 100000)
{
startIndex--;
N--;
}
for (i = startIndex; i <= N; i++)
{
if (sol[i] == 0)
{
g << element++ <<" ";
}
else
{
g << sol[i]<< " ";
}
}
g.close();
return 0;
}