To celebrate the opening of the Winter Computer School the organizers decided to buy in n liters of cola. However, an unexpected difficulty occurred in the shop: it turned out that cola is sold in bottles 0.5, 1 and 2 liters in volume. At that, there are exactly a bottles 0.5 in volume, b one-liter bottles and c of two-liter ones. The organizers have enough money to buy any amount of cola. What did cause the heated arguments was how many bottles of every kind to buy, as this question is pivotal for the distribution of cola among the participants (and organizers as well).
Thus, while the organizers are having the argument, discussing different variants of buying cola, the Winter School can't start. Your task is to count the number of all the possible ways to buy exactly n liters of cola and persuade the organizers that this number is too large, and if they keep on arguing, then the Winter Computer School will have to be organized in summer.
All the bottles of cola are considered indistinguishable, i.e. two variants of buying are different from each other only if they differ in the number of bottles of at least one kind.
The first line contains four integers — n, a, b, c (1 ≤ n ≤ 10000, 0 ≤ a, b, c ≤ 5000).
Print the unique number — the solution to the problem. If it is impossible to buy exactly n liters of cola, print 0.
10 5 5 5
9
3 0 0 2
0
#include<iostream>
using namespace std;
int main(){
int n,a,b,c,i,j,ans,temp;
while(cin>>n>>a>>b>>c){
ans=0;
for(i=0;i<=c;i++){
for(j=0;j<=b;j++){
temp=n-i*2-j;
if(temp>=0&&a*0.5>=temp){
ans++;
}
}
}
cout<<ans<<endl;
}
return 0;
}
本文介绍了一个关于计算在特定限制条件下购买不同容量汽水瓶数量的所有可能组合的问题,并提供了一段C++代码实现,用于解决该问题。
336

被折叠的 条评论
为什么被折叠?



