Cod sursă (job #819766)
Utilizator |
|
IP | ascuns |
---|---|---|---|
Problemă | SCV (clasele 9-10) | Compilator | cpp-32 | 1,63 kb |
Rundă | antrenament1 | Status | evaluat |
Dată | 9 apr. 2025 13:53:46 | Scor | 10 |
#include<fstream>
using namespace std;
ifstream cin("scv.in");
ofstream cout("scv.out");
long long e=0;
int a,b,c,d,f=1,g;
int main()
{
cin>>a>>b>>c>>d;
while(e<d)
{
if(e>=a and(d-e+f*c-1)/(f*c)>b+(d-(e-a)+(f+1)*c-1)/((f+1)*c))
{
e-=a;
g+=b;
f++;
}
else
{
long long h=d-e;
long long i=(h+f*c-1)/(f*c);
if(e>=a)
{
long long j=i;
long long k=e+f*c*b-a;
if(k<0)
{
g+=i;
e=d;
break;
}
long long l=f+1;
long long m=d-(e+f*c*b-a);
if(m<=0)
{
g+=b;
e=d;
break;
}
long long n=b+(m+l*c-1)/(l*c);
if(n<j)
{
g+=b;
e+=f*c*b-a;
f++;
}
else
{
g+=i;
e=d;
break;
}
}
else
{
long long o=a-e;
long long p=(o+f*c-1)/(f*c);
if(e+p*f*c>=d)
{
p=(d-e+f*c-1)/(f*c);
g+=p;
e=d;
break;
}
g+=p;
e+=p*f*c;
}
}
}
cout<<g;
}