Cod sursa(job #640596)

Utilizator sebii_cSebastian Claici sebii_c Data 26 noiembrie 2011 01:28:14
Problema Farfurii Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#include <string.h>

int main()
{
	freopen("farfurii.in", "r", stdin);
	freopen("farfurii.out", "w", stdout);
	long long k, n, i, j;
	scanf("%lld %lld", &n, &k);
	for (i = 2; i <= n; ++i)
		if (i * (i - 1) / 2 >= k)
			break;
	
	if (i * (i - 1) / 2 == k) {
		for (j = 1; j <= n - i; ++j)
			printf("%lld ", j);
		for (j = n; j >= n - i + 1; --j)
			printf("%lld ", j);
	}
	else {
		for (j = 1; j <= n - i; ++j)
			printf("%lld ", j);
		printf("%lld ", n - ((i - 1) * i / 2 - k));
		for (j = n; j >= n - i + 1; --j) {
			if (j == (n - ((i - 1) * i / 2 - k)))
				continue;
			printf("%lld ", j);
		}
	}
	return 0;
}