문제
링크
풀이
#include <iostream>
#include <utility>
using namespace std;
inline int calc(int pa, int pb, const pair<int, int> &c) {
return pa * c.first + pb * c.second;
}
void solve(void) {
int pa, ka, pb, kb, n; cin >> pa >> ka >> pb >> kb >> n;
pair<int, int> ans = {(n+ka-1)/ka, (n+kb-1)/kb};
for (int i=0; i<=(n+ka-1)/ka; i++) {
int j = (n-ka*i+kb-1)/kb;
if (calc(pa, pb, {i, j}) < calc(pa, pb, ans)) ans = {i, j};
}
cout << ans.first << " " << ans.second << " " << calc(pa, pb, ans);
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}