Cod sursa(job #165130)

Utilizator MarquiseMarquise Marquise Data 25 martie 2008 14:48:34
Problema Farfurii Scor 90
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;
	int i;

	freopen("farfurii.in", "r", stdin);
	freopen("farfurii.out", "w", stdout);
	scanf("%d %d", &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("%d ", i);
		for ( i = N; i >= L2 + 1; i--)
			printf("%d ", i);
	}
	else
	{
		L = N - M - 1;

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

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