本文主要是介绍hihoCoder #1353 : 满减优惠,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#1353 : 满减优惠
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
最近天气炎热,小Ho天天宅在家里叫外卖。他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元。并且如果消费总计满X元,还能享受优惠。小Ho是一个不薅羊毛不舒服斯基的人,他希望选择若干道不同的菜品,使得总价在不低于X元的同时尽量低。
你能算出这一餐小Ho最少消费多少元吗?
输入
第一行包含两个整数N和X,(1 <= N <= 20, 1 <= X <= 100)
第二行包含N个整数A1, A2, ..., AN。(1 <= Ai <= 100)
输出
输出最少的消费。如果小Ho把N道菜都买了还不能达到X元的优惠标准,输出-1。
样例输入
10 50 9 9 9 9 9 9 9 9 9 8
样例输出
53
#include<iostream>
using namespace std;
int N,X;
int num[21],vis[21];
int price;
void dfs( int sum,int cnt ){if( sum >=X ){if( sum < price )price = sum;return; }if( cnt >= N )return ;dfs( sum ,cnt+1);dfs( sum + num[cnt] ,cnt+1); }int main(void){ while( scanf("%d",&N)!=EOF){scanf("%d",&X);for( int i=0;i<N;i++)scanf("%d",&num[i]);price =999999;dfs( 0 ,0);if( price == 999999 )printf("-1\n");else printf("%d\n",price); }return 0;
}
这篇关于hihoCoder #1353 : 满减优惠的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!