Cod sursa(job #2904717)

Utilizator AncaGAncuta Gava AncaG Data 18 mai 2022 00:48:08
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

int main()
{
    long long i, nr_farf, nr_tacam, farf=0, comp=0;
// conteaza cum imi asez anumite farfurii astfel incat sa-mi asez toate tacamurile
    fin>>nr_farf>>nr_tacam;
// descopar minimul de farfurii care mi-ar putea acoperii nr de tacamuri
// fiindca imi trebie un minim lexicografic  la final, deci voi duce farfuriile mari catre final cat sa-mi asigur nr de tacamuri

// am combinari de n luate cate 2 care sa acoper nr_tacamuri
while(farf*(farf-1)>>1 <= nr_tacam)
    farf++;

// in acest moment stiu ce pot lua ca bucata strict crecatoare, de farfurii si le afisez
    for(i = 1; i <= nr_farf -farf ; ++i)
        fout<<i<<' ';



    comp = (farf * (farf - 1) >>1) - nr_tacam;
    fout<< nr_farf - comp << ' ';


    for(i = nr_farf; i >= nr_farf - farf + 1; --i)
        if(i != nr_farf - comp)
            fout<<i<<' ';
    return 0;
}