Pagini recente »
Istoria paginii utilizator/victordavid1150
|
Istoria paginii utilizator/bodybod
|
Istoria paginii utilizator/alesiascrisu
|
Istoria paginii utilizator/teovoicu126
|
Cod sursă (job #128406)
Cod sursă (job
#128406)
#include <cstdio>
#include <algorithm>
using namespace std;
long long c,timp2=0,m,x,t,cantac=0,pos1,pos2,nrscv=1,p;
bool ok=false;
int main()
{
freopen("scv.in","r",stdin);
freopen("scv.out","w",stdout);
scanf("%lld %lld %lld %lld\n",&c,&t,&m,&x);
while(cantac<x && !ok)
{
if(cantac>=c)
{
pos1=(x-cantac)/(m*nrscv);
if(cantac+(pos1*m*nrscv)<x)
++pos1;
pos2=t+(x-(cantac-c+(t*nrscv*m)))/((nrscv+1)*m);
if((pos2-t)*((nrscv+1)*m)<(x-(cantac-c+(t*nrscv*m))))
++pos2;
if(pos1<=pos2)
{
ok=true;
timp2+=pos1;
}
else
{
timp2+=t;
cantac-=c;
cantac+=(t*m*nrscv);
++nrscv;
}
}
else
{
timp2+=(c-cantac)/(m*nrscv);
cantac+=(m*nrscv*((c-cantac)/(m*nrscv)));
if(cantac<c)
{
cantac+=(m*nrscv);
++timp2;
}
}
}
printf("%lld\n",timp2);
return 0;
}