#include #include #include using namespace std; int dfs(map, int> &dp, long long x, int xc, long long y, int yc, int h, int cnt){ if (dp.count(make_pair(xc, yc))){ return dp[make_pair(xc, yc)]; } int ans = cnt; if (x > (h << xc)){ ans = max(ans, dfs(dp, x, xc + 1, y, yc, h * 2, cnt + 1)); } if (y > (h << yc)){ ans = max(ans, dfs(dp, x, xc, y, yc + 1, h * 2, cnt + 1)); } dp[make_pair(xc, yc)] = ans; return ans; } int main(){ long long x, y, h; cin >> x >> y >> h; x *= 1000; y *= 1000; map, int> dp; cout << dfs(dp, x, 0, y, 0, h, 0) << endl; }