Pagini recente » Cod sursa (job #3267985) | Cod sursa (job #58566) | Cod sursa (job #1538157) | Cod sursa (job #1323090) | Cod sursa (job #1070291)
#include <cstdio>
#include <cmath>
using namespace std;
FILE *f = fopen ("farfurii.in","r");
FILE *g = fopen ("farfurii.out","w");
const int MAX_N = 100005;
int N, sol[MAX_N];
long long K;
int main()
{
fscanf (f, "%d %lld", &N, &K);
double c = (1 + sqrt(1 + 8 * (double)K)) / 2;
long long m = (long long)c;
for (int i = 1; i <= N - m; i++)
sol[i] = i;
for (int i = N - m + 1, aux = N; i <= N; i++)
sol[i] = aux--;
K -= m * (m - 1) / 2;
for (int i = N; i && K; i--, K--) {
sol[i]--;
sol[N - m]++;
}
for (int i = 1; i <= N; i++)
fprintf (g, "%d ", sol[i]);
return 0;
}