Cod sursa(job #327963)

Utilizator cotofanaCotofana Cristian cotofana Data 30 iunie 2009 17:13:22
Problema Farfurii Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>
#include <math.h>

int n, k, m;

int main() {
	int i, aux;
	freopen("farfurii.in", "r", stdin);
	freopen("farfurii.out", "w", stdout);
	scanf("%d %d\n", &n, &k);
	m=(int)((double)1+sqrt(1+8*k))/2;
	if (m*(m-1)/2==k) {
		for (i=1; i<=n-m; ++i) printf("%d ", i);
		for (i=n; i>=n-m+1; --i) printf("%d ", i);
		printf("\n");
	}
	else {
		for (i=1; i<=n-m-1; ++i) printf("%d ", i);
		aux=n-((m+1)*m/2-k);
		printf("%d ", aux);
		for (i=n; i>=n-m; --i)
			if (i!=aux) printf("%d ", i);
		printf("\n");
	}
	return 0;
}