Cod sursa(job #74865)

Utilizator MarcvsHdrMihai Leonte MarcvsHdr Data 28 iulie 2007 23:16:26
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
# include <stdio.h>


long long int first, gap,n,k;

void citire()
{
FILE *f=fopen("farfurii.in","r");
fscanf(f,"%lld%lld",&n,&k);
fclose(f);
}

void calculeaza()
{
long long int i=0;
while ((i+1)*i/2<k) i++;
gap=k-(i*(i-1)/2);
first=n-i-1;
}

void scrie()
{
FILE *g=fopen("farfurii.out","w");
long int i,ap=0;
for (i=1;i<=first;i++)
	{
	fprintf(g,"%ld",i);
	ap++;
	if (ap!=n) fprintf(g," ");
	else fprintf(g,"\n");
	}
fprintf(g,"%ld",first+gap+1);
ap++;
if (ap!=n) fprintf(g," ");
else fprintf(g,"\n");
for (i=n;i>=first+1;i--)
	if (i!=first+gap+1)
		{
		fprintf(g,"%ld",i);
		ap++;
		if (ap!=n) fprintf(g," ");
		else fprintf(g,"\n");
		}
fcloseall();
}

int main()
{
citire();
calculeaza();
scrie();
return 0;
}