abc095c
この問題…過去の社内コンテストで同じの出たぞ…!!
一応全探索で解いた
ピザCの枚数が決まればピザAとピザBの枚数も決まるからピザCの枚数をループで回しながら答えを探す
#include<bits/stdc++.h>
using namespace std;
int a, b, c, x, y;
int main(){
cin >> a >> b >> c >> x >> y;
int ans = 1<<30;
int n = max(x, y) * 2;
for(int i=0;i<=n;i++){
int na = max(x-i, 0);
int nb = max(y-i, 0);
ans = min(ans, a * na + b * nb + 2 * c * i);
}
cout << ans << endl;
}
条件式でやるときは
・ハーフピザが高い→X枚ピザA,Y枚ピザB
・ハーフピザが安い→min(X, Y)までハーフピザ,残りをピザAもしくはピザBとハーフピザの安い方を買う
#include<bits/stdc++.h>
using namespace std;
int a, b, c, x, y;
int main(){
cin >> a >> b >> c >> x >> y;
int ans = 0;
if(a + b < 2 * c) ans = a * x + b * y;
else if(x < y) ans = min(2 * c * y, 2 * c * x + b * (y-x));
else ans = min(2 * c * x, 2 * c * y + a * (x-y));
cout << ans << endl;
}