Cod sursa(job #1700307)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 9 mai 2016 23:50:00
Problema Farfurii Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <cstdio>

int N,v[100001]={},aux[100001]={};
long long int K,fk[100001]={},dist=1;

int main()
{
	freopen("farfurii.in","r",stdin);
	freopen("farfurii.out","w",stdout);

	scanf("%d%d",&N,&K);
	fk[1]=1;
	for(int i=2;i<=N;i++)
		fk[i]=fk[i-1]+i;
	for(int i=1;i<=N;i++)
		v[i]=i;
	while(fk[dist]<K)
		dist++;
	while(K!=0)
	{
		if(K-dist>=0)
		{
		aux[0]++;
		aux[aux[0]]=v[N-dist];
		v[N-dist]=0;
		K-=dist;
		dist--;
		}
		else
			dist--;
	}
	for(int i=1;i<=N;i++)
		if(v[i]!=0)
			printf("%d ",v[i]);
	for(int i=aux[0];i>0;i--)
		printf("%d ",aux[i]);

	return 0;
}