Cod sursă (job #765698)

Utilizator avatar axenie abchihba axenie IP ascuns
Problemă SCV (clasele 9-10) Compilator cpp-32 | 0,95 kb
Rundă Arhiva de probleme Status evaluat
Dată 1 mar. 2024 10:41:56 Scor 90
#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 = 0, scvs = 1, countdown = 0;
    for(int i = 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;
}