Cod sursa(job #2903205)

Utilizator irinaenescu2002Enescu Irina irinaenescu2002 Data 17 mai 2022 11:26:21
Problema Farfurii Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 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 ()
{
    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;
}