#include typedef long long ll; typedef unsigned long long ull; #define FOR(i,a,b) for(int (i)=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define RANGE(vec) (vec).begin(),(vec).end() using namespace std; class ActionChoice { public: void solve(void) { int H,A,D; cin>>H>>A>>D; // // Exp[h] を h ダメージを与えるときの戦闘回数期待値とする。 // 最善の戦略をとるのでそれぞれ期待値を計算して比較することになる // // 確率pで当たり、(1-p)で外れとなるとき、当たりが出るまでの試行回数の期待値はp^-1となる。(0 exp(H+1,0); // exp[h] := ダメージ h を与えたときの最小戦闘回数期待値 FOR(h, 1, H+1) { exp[h] = min(exp[max(h-A,0)] + 1, exp[max(h-D,0)] + 1.5); } cout<solve(); delete obj; return 0; } #endif