Cod sursa(job #1653882)

Utilizator krityxAdrian Buzea krityx Data 16 martie 2016 17:49:27
Problema Farfurii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <queue>
#define NMAX 100005

using namespace std;

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;
	if (pIndex < 0)
	{
		pIndex++;
	}
	bool once = true;
	for (i = pIndex + 1; i <= N; i++)
	{
		if (V[i - 1] == K - sum)
		{
			if (once)
			{
				sol[i] = element - 1;
				sol[pIndex] = element;
				element -= 2;
				once = false;
			}
			else
			{
				while (true)
				{

				}
			}
		}
		else
		{
			sol[i] = element--;
		}
	}

	element = 1;

	ofstream g("farfurii.out");
	long long startIndex = 1, endIndex = N;

	for (i = startIndex; i <= N; i++)
	{
		if (sol[i] == 0)
		{
			g << element++ << " ";
		}
		else
		{
			g << sol[i] << " ";
		}
	}
	g.close();

	return 0;
}