#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define stop exit(0) #define nc -1 #define eps 1e-10 #define inf 1000000000 #define mod 1000000007 #define mp make_pair #define fill(array,value) memset(array,value,sizeof(array)) #define f(i,beg,end) for(int i=beg; i<=end; i++) #define F(i,beg,end) for(int i=beg; i>=end; i--) #define Max(a,b) ( (a>b)?a:b ) #define Min(a,b) ( (a> c >> t; t*=100LL; } bool isAnswer(ll n) { double a = n, b = log2(1.0*n); double f = a*b*c; if ((double)t-f >= 0.0) { return true; } else { return false; } } void solve() { double maxComplexityValue = 1.0*t/c; ll ans = 0.0; ll left=1, right=(ll)maxComplexityValue, mid; while (left <= right) { mid = (left + right) >> 1; if (isAnswer(mid)) { ans = mid; left = mid + 1; } else { right = mid - 1; } } cout << ans << endl; } int main() { int numberOfTests = 1; f(i,1,numberOfTests) { init(); solve(); } return 0; }