Pagini recente »
Statistici barbu madalina maria (madalina_barbu)
|
Borderou de evaluare (job #528040)
|
Borderou de evaluare (job #206875)
|
Borderou de evaluare (job #1330)
|
Cod sursă (job #765715)
Cod sursă (job
#765715)
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
bool f(int &mid, int &c, int &t, int &m, int &x) {
int k = (c/m) - (c % m == 0 ? 1 : 0), scvs = 1, countdown = 0;
k *= m;
for(int i = (c / m + (c % m == 0 ? 0 : 1)); i <= mid; i++) {
if(countdown) --countdown;
k += (scvs*m);
if(k >= c && countdown == 0) {
int rem_days = mid-i+1-t;
if(rem_days * m > c) {
k -= c;
k -= (m * t);
scvs++;
countdown = t;
}
}
if(k >= x) return true;
}
return false;
}
int main()
{
freopen("scv.in", "r", stdin);
freopen("scv.out", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0);
int C, T, M, X;
cin >> C >> T >> M >> X;
int l = 1, r = (X/M+1);
while(l <= r) {
int mid = (l+r)/2;
if(f(mid, C, T, M, X)) {
r = mid-1;
}
else l = mid+1;
}
cout << l;
return 0;
}