Cod sursa(job #70514)

Utilizator c_sebiSebastian Crisan c_sebi Data 6 iulie 2007 11:20:17
Problema Farfurii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>

int ec(long long k) {
	double x;
	x = (1 + sqrt(1+8*k))/2;
	if (x == (long long)x)
		return x;
	else return (long long)x + 1;
}

int main() {
	long long x, i, val, n, k;
	FILE *f=fopen ("farfurii.in", "r");
	FILE *g=fopen ("farfurii.out", "w");
	fscanf (f, "%lld %lld", &n, &k);
	fclose(f);
	x=ec(k);
	//for (x=1; x*(x-1)/2 < k ; ++x);
	val=x*(x-1)/2;
	for (i=1; i<=n-x; ++i)
		fprintf (g, "%lld ", i);
	fprintf (g, "%lld ", n-(val-k));
	for (i=n; i>n-x; --i)
		if (i!=n+k-val)
			fprintf (g, "%lld ", i);
	fprintf (g, "\n");
	fclose(g);
	return 0;
}