Cod sursa(job #3133977)

Utilizator Alex_Cristea72Cristea Alexandru Alex_Cristea72 Data 27 mai 2023 19:47:44
Problema Farfurii Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

void functia_principala(long long a, long long b, ofstream& f2) {
    vector<long long> lista(a);

    for (long long i = 0; i < a; i++)
        lista[i] = i + 1;

    long long inversiuni = 0;
    for (long long i = a - 1; i >= 0; i--) {
        if (inversiuni + (a - i - 1) >= b) {
            long long diferenta = b - inversiuni;
            swap(lista[i], lista[i + diferenta]);
            reverse(lista.begin() + i + 1, lista.end());
            break;
        }
        inversiuni += (a - i - 1);
    }


    for (const auto& nr : lista)
        f2 << nr << " ";
}

int main() {
    ifstream f1("../farfurii.in");
    ofstream f2("../farfurii.out");

    long long a, b;
    f1 >> a >> b;

    functia_principala(a, b, f2);

    return 0;
}