Pagini recente »
Istoria paginii utilizator/kerekeskarina
|
Istoria paginii utilizator/dianahusanu925
|
Istoria paginii utilizator/andreietarerau
|
Istoria paginii utilizator/mihnealazar
|
Cod sursă (job #819794)
Cod sursă (job
#819794)
#include <fstream>
#define int long long
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(int val)
{
int 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;
}
signed 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;
}