Cod sursa(job #45625)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 1 aprilie 2007 19:06:46
Problema Farfurii Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
long int n,k,r,l,m,m1,m2,q,s1,s2,i;
int main()
{
	FILE *f,*g;
	f=fopen("farfurii.in","r");
	g=fopen("farfurii.out","w");
	fscanf(f,"%ld%ld",&n,&k);
	r=n;l=0;
	do{
	m=(r+l)/2;
	m1=m*(m-1)/2;
	if(m1<k) l=m;
	else r=m;}
	while(r!=(l+1));
	m1=r*(r-1)/2;
	s1=n-r;
	for(i=1;i<=s1;i++)
	fprintf(g,"%ld ",i);
	q=m1-k;
	if(q==0) for(i=n;i>s1;i--) fprintf(g,"%ld ",i);
	else { s2=s1+q+1;fprintf(g,"%ld ",s2);
		for(i=n;i>s2;i--) fprintf(g,"%ld ",i);
		for(i=s2-1;i>s1;i--) fprintf(g,"%ld ",i);}
	m2=l*(l-1)/2;
	fprintf(g,"\n");
	fcloseall();
	return 0;
}