题目链接:http://acm.henu.edu.cn/contest/problem?id=2&pid=1#problem-anchor
#include<bits/stdc++.h>
using namespace std;
#define ll long long
//d, k, a, b, t
ll d, k, a, b, t;
int main()
{
scanf("%lld %lld %lld %lld %lld", &d, &k, &a, &b, &t);
ll t1 = k *a + t, t2 = k * b;
ll ans = 0;
// 第一种情况
if(t2 <= t1) {
if(d <= k) ans = d * a;
else {
ans = k * a + (d - k) * b;
}
}// 第二种情况
else {
ll cnt = d / k;
ll remain = d % k;
if(d <= k) ans = d * a;
else {
ans = (cnt - 1) * (k * a + t) + k * a + remain * b;
if(remain == 0) cnt--, remain = k;
ans = min(ans, cnt * (k * a + t) +a * remain);
}
}
printf("%lld\n", ans);
return 0;
}