Перевод кода Python в C++

переведите, пожалуйста код с питона на с++, заранее благодарен.

def f(m):
    return max((w // (a + 2 * m)) * (h // (b + 2 * m)),
        (h // (a + 2 * m)) * (w // (b + 2 * m)))

n, a, b, w, h = [int (i) for i in input().split()]
l = 0
r = 10 ** 18
while r - 1 > 1:
    m = (l+r) // 2
    if f(m) >= n:
        l = m
    else:
        r = m
print(l)

c++:

void f(int m,int w,int h,int a, int b) { 
    return min((w / (a + 2 * m)) * (h / (b + 2 * m)));
    return ((h / (a + 2 * m)) * (w / (b + 2 * m)));
}

Ответы (1 шт):

Автор решения: pagislav
#include <iostream>
#include <algorithm>

using namespace std;

int64_t n, a, b, w, h;

int64_t f(int64_t m)
{
    int64_t first = (a + 2 * m);
    int64_t second = (b + 2 * m);
    return max(w / first * h / second, h / first * w / second);
}

int main()
{
    cin >> n >> a >> b >> w >> h;
    int64_t l = 0;
    int64_t r = 1e+18;

    while (r-1 > 1)
    {
        int64_t m = (l+r)/2;

        if (f(m) >= n) l = m;
        else r = m;
    }

    cout << l << endl;
    return 0;
}

Код переведён, но бинарный поиск сам написан неверно, while (r-1 > l), скорее так будет верно

→ Ссылка