Cod sursa(job #3132406)

Utilizator omaclearuMacelaru Octavian Andrei omaclearu Data 22 mai 2023 18:27:39
Problema Farfurii Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("farfurii.in");
ofstream fout("farfurii.out");

class FarfuriiSolver {
private:
    int n, k;

    int calculateX() {
        int x = 1;
        while (x * (x + 1) / 2 < k)
            x++;
        return x + 1;
    }

    void afisMaiMiciX(int x) {
        for (int i = 1; i <= n - x; i++)
            fout << i << " ";
    }

    void afisMaiMariX(int x, int nr) {
        for (int i = n; i > n - x; i--)
            if (i != nr)
                fout << i << " ";
    }

public:
    void readInput() {
        fin >> n >> k;
    }

    void solveProblem() {
        int x = calculateX();


        afisMaiMiciX(x);

        if (k == x * (x - 1) / 2) {
            afisMaiMariX(x, n);
            return;
        }

        int nr = n - (x * (x - 1) / 2 - k);
        fout << nr << " ";
        afisMaiMariX(x, nr);
    }
};

int main() {
    FarfuriiSolver solver;
    solver.readInput();
    solver.solveProblem();
    return 0;
}