题目大意:你需要整N升可乐,商店有a瓶0.5升的,b瓶1升的和c瓶2升装的,你可以买任意瓶可乐(当然每种不能超过上限),只要满足整N升可乐,问选购的方案数。
)第一行输入四个整数:N,a,b,c(1<=N<=10000,0<=a,b,c<=5000);
输出一个整数,满足N升可乐的方案数;
思路:由于abc范围较小,可以直接枚举任意两种的瓶数然后去算是否能用另一种满足便可;
AC代码:
#include<bits/stdc++.h>
#define js ios::sync_with_stdio(false)
#define ll long long
using namespace std;
const ll N=2e5+5;
const ll INF=0x3f3f3f;
void solve(){
int N,a,b,c,ans=0;
cin>>N>>a>>b>>c;
for(int i=0;i<=b;i++){
for(int j=0;j<=c;j++){
if((N-i-j*2)>=0&&(N-i-j*2)*2<=a){//满足(N-i-j*2)>=0就是剩下的需要用0.5升的来补,/0.5就直接写成*2了,枚举a,b或者a,c都可以
ans++;
}
}
}
cout<<ans<<endl;
}
signed main(){
js;
solve();
return 0;
}