Cod sursă (job #807844)

Utilizator avatar popescu_george Popescu George popescu_george IP ascuns
Problemă Ruleta1 ( clasa a 6-a ) Compilator cpp-32 | 0,97 kb
Rundă Arhiva de probleme Status evaluat
Dată 3 feb. 2025 13:29:19 Scor 100
#include<fstream>
using namespace std;
ifstream cin("ruleta1.in");
ofstream cout("ruleta1.out");
#define Z 4096
int a[10000],p=Z;
char s[Z];
inline char A()
{
    if(p==Z)
        cin.read(s,Z),p=0;
    return s[p++];
}
short B()
{
    char c;
    for(c=A();c<48;c=A());
    int n=0;
    for(;c>47;n=n*10+c-48,c=A());
    return n;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int n=B(),i,r=0,t=0,k=0;
    for(i=0;i<n;a[i++]=B());
    for(i=0;k<=n;) {
        for(;i<n-1&&k<=n&&(!a[i]||a[i]>a[i+1]);++i,++k,++r);
        if(i==n-1&&(!a[i]||a[0]<a[n-1]))
            for(++k,++r,i=0;i<n-1&&k<=n&&(!a[i]||a[i]>a[i+1]);++i,++k,++r);
        if(i<n-1&&a[i]&&a[i]<=a[i+1])
            a[i+1]-=a[i],k=0,++i,++r;
        else if(i>n-2&&a[n-1]&&a[n-1]<=a[0])
            a[0]-=a[n-1],k=0,i=0,++r;
    }
    for(i=0;i<n;++i)
        if(a[i])
            ++t;
    return cout<<r/n+(r%n>1?1:0)<<' '<<t,0;
}