Cod sursă (job #819795)

Utilizator avatar mihaigeorgescu Georgescu Mihai mihaigeorgescu IP ascuns
Problemă SCV (clasele 9-10) Compilator cpp-32 | 1,12 kb
Rundă Arhiva de probleme Status evaluat
Dată 9 apr. 2025 15:44:50 Scor 90
#include <fstream>
using namespace std;
ifstream fcin("scv.in");
ofstream fout("scv.out");
int c,m,t,x;
inline int nrzile(int fin, int start, int ratie)
{
    if((fin-start)%ratie==0)
        return (fin-start)/ratie;
    return (fin-start)/ratie+1;
}
inline int f(long long val)
{
    long long r=m, zi=0, s=0;
    while(zi<val)
    {
        if(s>=c)
        {
            if(zi+t<val && (val-(zi+t))*m>c)
            {
                s-=c;
                zi+=t;
                s+=t*r;
                r+=m;
            }
            else
            {
                s+=(val-zi)*r;
                if(s>=x) return 1;
                return 0;
            }
        }
        else
        {
            zi+=nrzile(c,s,r);
            s+=nrzile(c,s,r)*r;
        }
    }
    return 0;
}
int main()
{
    fcin>>c>>t>>m>>x;
    int st=1, dr=1e8, sol=-1;
    while(st<=dr)
    {
        int mij=(st+dr)/2;
        if(f(mij))
        {
            dr=mij-1;
            sol=mij;
        }
        else
        {
            st=mij+1;
        }
    }
    fout<<sol;
    return 0;
}