贪吃的小J

Description

现在小J的胃的容量为0,她每吃一个orange,饱食度就会增加A;每吃一个lemon,饱食度就会增加B。小J还有一次喝水的机会,如果小J喝水前饱食度为x,喝水后饱食度会变为trunc(x/2).​小J的胃的饱食度不能超过T,否则肚子会爆炸。 试求小J的胃的饱食度最大能达到多少。

Format

Input

一行给出三个数字T,A,B 1<=T<=5,000,000 1<=A,B<=T

Output

如题

Samples

输入数据 1

8 5 6


输出数据 1

思路:用dfs来做,看看现在小J的肚子有没有满,满了就喝水。

CODE:

#include 
using namespace std;
int t, x, y, max1 = -1;
int f[500000];
void dfs(int now, bool flag) {if (f[now])return ;f[now] = 1;if (now > t)return ;dfs(now + x, flag);//吃一个orangedfs(now + y, flag);//吃一个lemonif (!flag)dfs(now / 2, 1);//喝水max1 = max(max1, now);return ;
}
int main() {cin >> t >> x >> y;dfs(0, 0);cout << max1 << endl;return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部