Cod sursa(job #2617311)

Utilizator pascustefanPascu Stefan Liviu pascustefan Data 21 mai 2020 14:00:13
Problema Farfurii Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <cmath>
#include <fstream>

using namespace std;
int n, k, v[100002], p, x, m, d, i;

int main()
{
    freopen("farfurii.in", "r", stdin);
	freopen("farfurii.out", "w", stdout);

    scanf("%d%d", &n, &k);
    x = ((-1 + sqrt(1 + 8 * k)) / 2);

    m = n - (x + 1);
    for(i = 1; i < m; i++) {
        v[i] = i;
    }

    p = n;
    v[m] = 0;
    for(i = m + 1; i <= n + 1; i++) {
        v[i] = p--;
    }

    d = (k - (x * (x + 1)) / 2);
    if(k > 0) {
        v[m] = v[n-d+1];
        for(i=1;i<n-d+1;i++)
            printf("%ld  ", v[i]);
        for(i=n-d+2;i<=n+1;i++)
            printf("%ld  ", v[i]);
    }else {
        for(i=1;i<m;i++)
            printf("%ld  ", v[i]);
        for(i=m+1;i<=n+1;i++)
            printf("%ld  ", v[i]);
    }
    return 0;
}