#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
const int N = 55;
int n, m;
LL f[100010];
struct st {
LL a, b, c;
}x[N];
int main()
{
cin >> m >> n;
for (int i = 1; i <= n; i ++ ) cin >> x[i].a;
for (int i = 1; i <= n; i ++ ) cin >> x[i].b;
for (int i = 1; i <= n; i ++ ) cin >> x[i].c;
sort(x + 1, x + n + 1, [&](st A, st B) {
return A.b * B.c > B.b * A.c;
});
for (int i = 1; i <= n; i ++ )
for (int j = m; j >= x[i].c; j -- )
f[j] = max(f[j], f[j - x[i].c] + x[i].a - j * x[i].b);
LL res = 0;
for (int i = 1; i <= m; i ++ ) res = max(res, f[i]);
cout << res << endl;
return 0;
}
烹调方案——洛谷1417
最新推荐文章于 2024-08-30 15:57:36 发布