Cod sursa(job #504323)

Utilizator crushackPopescu Silviu crushack Data 27 noiembrie 2010 14:51:11
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#define NMax 100000
using namespace std;

const char IN[]="farfurii.in",OUT[]="farfurii.out";
typedef unsigned long long ull;
ull N,K;

bool ap[NMax];

void Write(ull N,ull sum)
{
	ull i,M=1,ax;
	for (M=1;M*(M-1)/2<K;M++);
	if (M*(M-1)/2!=K) M--;
	ofstream fout(OUT);
	if (K==M*(M-1)/2)
	{
		for (i=1;i<=N-M;i++)
			fout<<i<<' ';
		//fout<<(ax=N-((M+1)*M/2-K))<<" ";
		for (i=0;i<M;i++)
			if (N-i!=ax)
				fout<<N-i<<' ';
	}
	else
	{
		for (i=1;i<N-M;i++)
			fout<<i<<' ';
		fout<<(ax=N-((M+1)*M/2-K))<<' ';
		for (i=0;i<=M;i++)
			if (N-i!=ax)
				fout<<N-i<<' ';
	}
	fout.close();
}

int main()
{
	ifstream fin(IN);
	fin>>N>>K;
	fin.close();
	
	Write(N,K);
	
	return 0;
}