Cod sursa(job #2903207)

Utilizator irinaenescu2002Enescu Irina irinaenescu2002 Data 17 mai 2022 11:30:49
Problema Farfurii Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.58 kb
#pragma GCC optimize "O3"
#include <fstream>

using namespace std;

ifstream citeste("farfurii.in");
ofstream scrie("farfurii.out");

int numar_farfurii, numar_tacamuri, farfurie_mutata, farfurii_crescatoare = 1;

void citire()
{
    citeste >> numar_farfurii;
    citeste >> numar_tacamuri;
}

void ordonare_farfurii ()
{
    if (numar_farfurii == 1)
        scrie << 1 << " ";
    else
    {
        while(farfurii_crescatoare*(farfurii_crescatoare+1)/2 <= numar_tacamuri)
            farfurii_crescatoare++;
        if (farfurii_crescatoare*(farfurii_crescatoare-1)/2 == numar_tacamuri)
        {
            for(int farfurie=1; farfurie<=numar_farfurii-farfurii_crescatoare; farfurie++)
                scrie << farfurie << " ";
            for(int farfurie=numar_farfurii; farfurie>numar_farfurii-farfurii_crescatoare; farfurie--)
                scrie << farfurie << " ";
        }
        else
        {
            for(int farfurie=1; farfurie<numar_farfurii-farfurii_crescatoare; farfurie++)
                scrie << farfurie << " ";
            farfurie_mutata = farfurii_crescatoare + numar_tacamuri - farfurii_crescatoare*(farfurii_crescatoare+1)/2;
            scrie << numar_farfurii - farfurie_mutata << " ";
            for(int farfurie=numar_farfurii; farfurie>=numar_farfurii-farfurii_crescatoare; farfurie--)
                if(numar_farfurii-farfurie_mutata!=farfurie)
                    scrie << farfurie << " ";
        }
    }

}


int main()
{
    ios_base::sync_with_stdio(false);
    citire();
    ordonare_farfurii();
    return 0;
}