Cod sursă (job #600897)

Utilizator avatar rares_ciociea balkdk rares_ciociea IP ascuns
Problemă Ruleta1 ( clasa a 6-a ) Compilator cpp-32 | 0,93 kb
Rundă Arhiva de probleme Status evaluat
Dată 27 iun. 2021 13:05:42 Scor 30
#include <fstream>
#include <map>
using namespace std;
ifstream in("ruleta1.in");
ofstream out("ruleta1.out");
int v[10010];
map <int,bool>ap;
int main()
{
    int n;
    in>>n;
    for(int i=1;i<=n;i++)
        in>>v[i];
    v[n+1]=v[1];
    bool ok=1;
    int r=0;
    int t=0;
    for(int i=1;i<=n;i++)
        ap[i]=1;
    while(ok)
    {
        ok=0;
        r=0;
        for(int i=1;i<=n;i++)
        if(ap.find(i)!=ap.end())
        {

            if(v[i]&&v[i]<=v[i+1])
            {
                ap[i+1]=1;
                ok=1;
                v[i+1]-=v[i];
                if(v[i+1]<=v[i+2]&&v[i+1])
                    ap[i+1]=1;
            }
            if(v[i]==0||v[i]>v[i+1])
                ap.erase(i);
        }
        v[1]=v[n+1];
        if(ok==1)
            t++;
    }
    r=0;
    for(int i=1;i<=n;i++)
        if(v[i])
        r++;
    out<<t+1<<" "<<r;
    return 0;
}