Cod sursa(job #360454)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 31 octombrie 2009 16:18:09
Problema Farfurii Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#include <math.h>

FILE *f,*s;

int m,n,k,i;

int main()
{
	f=fopen("farfurii.in","r");
	s=fopen("farfurii.out","w");
	
	fscanf(f,"%d %d",&n,&k);
	
	for(i=1;i<n;i*=2);
	
	for(;i>0;i/=2)
	{
		if(m+i<=n && (m+i)*(m+i-1)<=2*k)
			m+=i;
	}
	
	k-=(m*(m-1)/2);
	
	if(k==0)
	{
		for(i=1;i<=n-m;i++)
			fprintf(s,"%d ",i);
		
		fprintf(s,"%d",n);
		
		for(i=n-1;i<=n-m+1;i++)
			fprintf(s,"%d ",i);
	}	
	else
	{
		k=m-k;
		
		m++;
		
		for(i=1;i<=n-m;i++)
			fprintf(s,"%d ",i);

		fprintf(s,"%d ",n-k);
		
		for(i=n;i>n-k;i--)
			fprintf(s,"%d ",i);
		
		for(i=n-k-1;i>n-m;i--)
			fprintf(s,"%d ",i);
	}	
	
	fclose(s);
	
	return 0;
}