Cod sursă (job #648006)

Utilizator avatar ridiche34 Tudor Diaconu ridiche34 IP ascuns
Problemă Ruleta1 ( clasa a 6-a ) Compilator cpp-32 | 1,13 kb
Rundă Arhiva de probleme Status evaluat
Dată 20 apr. 2022 21:06:44 Scor 90
#include <fstream>
#include <list>

using namespace std;

int main()
{
    ifstream in;
    ofstream out;
    in.open("ruleta1.in");
    out.open("ruleta1.out");
    long n, r = 0, t = 0, aux = 0; bool schimbat = 1;
    in >> n;
    list<long> nr;

    for (long i = 0; i < n; i++)
    {
        in >> aux;
        nr.push_back(aux);
    }
    while (schimbat)
    {
        schimbat = 0; r++;

        for (list<long>::iterator it = nr.begin(); it != prev(nr.end()); it++)
        {
            if (*it)
            {
                if (*it <= *next(it))
                {
                    *next(it) -= *it;
                    schimbat = 1;
                }
            }
            else if (!*next(it))
            {
                nr.erase(next(it));
            }
        }
        if (*prev(nr.end()) && *nr.begin() >= *prev(nr.end()))
        {
            *nr.begin() -= *prev(nr.end());
            schimbat = 1;
        }
    }
    for (list<long>::iterator it = nr.begin(); it != nr.end(); it++)
    {
        if (*it)
            t++;
    }
    out << r << " " << t;
    return 0;
}