Cod sursa(job #521017)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 10 ianuarie 2011 23:01:31
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>

const long long maxn=100010;
long long i,j,k,p,N,K,F[maxn],F2[maxn];
bool comp=false;

int main()
{
	freopen("farfurii.in","r",stdin);
	freopen("farfurii.out","w",stdout);
	scanf("%lld %lld",&N,&K);
	i=1; 
	if(K==0) K=-100;
	do
	{
		
		p=(N-i)*(N-i-1)/2;
		if(p>=K) F[i]=i,i++;
		else if(p<K)
		{
			F[N+K-(N-i+1)*(N-i)/2]=i;
			comp=true;
		}
	}
	while(!comp && i<=N);
	
	p=i;
	if(!comp) p--;
	for(j=N;j>=1;j--)
	{
		while(F[j]>0 && j>=1) j--;
		F[j]=++p;
	}
	
	for(i=1;i<=N;i++)
		F2[F[i]]=i;
	for(i=1;i<=N;i++)
		printf("%lld ",F2[i]);
}