寂寞双十一
比赛题目
题目统计 全部提交
时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 256MB,其他语言 512MB
描述
今年的双十一太冷清了,冷清到没人愿意在网上购物了。
小w饿了,但是太晚了,小w只能去自动贩卖机购买泡面。
因为自动贩卖机没有找零的功能,所以如果小w想购买X元的泡面就必须准确投入总和为X元的硬币。
现在小w手里只有A枚1元硬币,B枚5元硬币和C枚十元硬币,请问小w能否成功购买泡面
输入描述
输入一行四个整数A,B,C,X,保证1≤A,B,C≤10000,1≤X≤105
输出描述
如果无法购买,则输出一行Impossable
如果可以购买,则输出方案数
隔壁西南民大的c题,卡半天,记录一下后面来解
#include <iostream>
using namespace std;
int main() {
int A, B, C, X;
cin >> A >> B >> C >> X;
int n=0;
int dp[C+1][B+1];
dp[0][0]=X;
for(int i=0;i<=C;i++){
if(i>0)dp[i][0]=dp[i-1][0]-10;
if(dp[i][0]<0){
break;
}
for(int j=0;j<=B;j++){
if(j>0)dp[i][j]=dp[i][j-1]-5;
if(dp[i][j]<0){
break;
}
if(dp[i][j] <= A) n++;
}
}
if(n==0) cout<<"Impossable";
else cout<<n;