Cod sursa(job #2752048)

Utilizator oporanu.alexAlex Oporanu oporanu.alex Data 16 mai 2021 15:25:12
Problema Farfurii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("farfurii.in");
ofstream g("farfurii.out");

unsigned long long cmm(int N){
    unsigned long long i = 1;
    while ((i * (i - 1) / 2) < N)
        ++i;

    return i;
}
int main()
{   unsigned long long  N;
    unsigned  long long  K;

    f >> N >> K;

    if(K == 0)
        for(unsigned long long i = 1; i <= N; ++i)
            g << i << " ";
        return 0;
    }

    unsigned  long long m = cmm(K);

    if (K == (m * (m - 1)) / 2)
    {
        for (unsigned  long long i = 1; i <= N - m; ++i)
            g << i << " ";
        for (unsigned long long i = N; i >= N - m + 1; --i)
            g << i << " ";
        return 0;
    }

    --m;

    //cout << m;

    ///cout << N - (((m) * (m + 1)) / 2) + K;

    for (unsigned  long long i = 1; i <= N - m - 1; ++i)
        g << i << " ";

    g << N - (((m) * (m + 1)) / 2) + K << " ";

    for (unsigned  long long i = N; i >= N - m; --i)
        if (i != N - (((m ) * (m + 1)) / 2) + K)
            g << i << " ";

    return 0;
}