Cod sursa(job #261024)

Utilizator irene_mFMI Irina Iancu irene_m Data 17 februarie 2009 20:20:59
Problema Farfurii Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream.h>
long n,k,i,m,p;

int main()
{
	ifstream fin("farfurii.in");
	fin>>n>>k;
	fin.close();
	ofstream fout("farfurii.out");
	p=1;
	while(p<n)
		p*=2;
	m=0;
	while(p>0)
	{
		if(m+p<=n && (m+p)*(m+p-1)<=2*k)
			m+=p;
		p/=2;
	}
	k-=m*(m-1)/2;
	if(!k)
	{
		for(i=1;i<=n-m;i++)
			fout<<i<<" ";
		for(i=n;i>=n-m+1;i--)
			fout<<i<<" ";
		fout<<'\n';
	}
	else
	{
		k=m-k;
		m++;
		for(i=1;i<=n-m;i++)
			fout<<i<<" ";
		fout<<n-k<<" ";
		for(i=n;i>=n-k+1;i--)
			fout<<i<<" ";
		for(i=n-k-1;i>=n-m+1;i--)
			fout<<i<<" ";
		fout<<'\n';
	}
	fout.close();
	return 0;
}