Cod sursa(job #2554621)

Utilizator CosminMorarMorar Cosmin Andrei CosminMorar Data 23 februarie 2020 10:46:17
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long n, k;

long long genNrNeeded() {
    long long st = 0, dr = k;
    while (st < dr) {
        long long mij = (st + dr) / 2;
        if (k < mij * (mij + 1) / 2)
            dr = mij;
        else
            st = mij + 1;
    }
    return st - 1;
}

int main() {
    fin >> n >> k;
    long long c = genNrNeeded();

    for (int i = 1; i < n - c - 1; i++)
        fout << i << ' ';

    long long diff = k - c * (c + 1) / 2;

    if (k != n * (n - 1) / 2)
        fout << n - c - 1 + diff << ' ';

    for (int i = n; i >= n - c + diff; i--)
        fout << i << ' ';

    for (int i = n - c + diff - 2; i >= n - c - 1; i--)
        fout << i << ' ';
    return 0;
}