Cod sursa(job #3132414)

Utilizator omaclearuMacelaru Octavian Andrei omaclearu Data 22 mai 2023 18:42:17
Problema Farfurii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>

using namespace std;

class FarfuriiSolver {
private:
    int n, k, x;
    vector<int> numbers;

    void calculateX() {
        x = sqrt(2 * k) + 1;
        while (x * (x - 1) / 2 < k)
            x++;
    }

    void generateNumbers() {
        for (int i = 1; i <= n; i++) {
            if (i <= n - x)
                numbers.push_back(i);
            else if (i != n - (x * (x - 1) / 2 - k))
                numbers.push_back(i);
        }
    }

    void writeNumbersToFile() {
        ofstream fout("farfurii.out");
        for (int i: numbers)
            fout << i << " ";
        fout.close();
    }

public:
    void solveProblem() {
        ifstream fin("farfurii.in");
        fin >> n >> k;
        calculateX();
        generateNumbers();
        writeNumbersToFile();
        fin.close();
    }
};

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