Cod sursa(job #165136)

Utilizator MarquiseMarquise Marquise Data 25 martie 2008 14:58:08
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <math.h>


long long  N, K, M;


int main()
{
	long long  P, num, L, L2, delta;
	long long i;

	freopen("farfurii.in", "r", stdin);
	freopen("farfurii.out", "w", stdout);
	scanf("%lld %lld", &N, &K);

	delta = sqrt(1 + 8 * K);
	M = (1 + delta) / 2;
	P = (M - 1) * M / 2;

	L2 = N - M;

	if ( K == P)
	{
		for ( i = 1; i <= L2; i++)
			printf("%lld ", i);
		for ( i = N; i >= L2 + 1; i--)
			printf("%lld ", i);
	}
	else
	{
		L = N - M - 1;

		for ( i = 1; i <= L; i++)
			printf("%lld ", i);

		num = N - ( M * ( M+1) / 2 - K);
			printf("%lld ", num);
		for ( i = N; i > num && i >= L2; i--)
			printf("%lld ", i);

		for ( i = num - 1; i >= L2; i--)
			printf("%lld ", i);
    }   
  
   return 0;   
}