#include <iostream>
using namespace std;
#define int long long
int p, n, res2;
struct node
{
int v, w;
} e[2];
signed main()
{
cin >> n >> e[0].v >> e[0].w >> e[1].v >> e[1].w;
if (e[0].w * e[1].v < e[1].w * e[0].v)
p = 0;
else
p = 1;
int res = 0, sum = 0;
while (sum + e[p].v <= n)
res += e[p].w, sum += e[p].v;
res2 = res, res += e[p].w, p ^= 1;
int k = n - sum;
while (k > 0)
res2 += e[p].w, k -= e[p].v;
cout << min(res2, res) << endl;
}
如题,不是很理解为什么会这样