示例1
输入
3 4 1 2
输出
4
说明
组成两个二号水果大礼包,使用了2个苹果和4个桃子。总价值为4。
示例2
输入
1 1 5 6
输出
0
说明
显然无法组合成任意一个大礼包
解析:
数据量1e6,应该O(n)。遍历苹果数量,计算最大值。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
ll n,m,a,b,res;
int main(){
scanf("%lld%lld%lld%lld",&n,&m,&a,&b);
for(ll i=0;i<=n;i++){
ll x=b*min(i,m/2);
ll y=a*min(m-min(i,m/2)*2,(n-min(i,m/2))/2);
res=max(res,x+y);
}
cout<<res;
return 0;
}