
All the shops use discount to attract customers, but some shops doesn’t give direct discount on their goods, instead, they give discount only when you bought more than a certain amount of goods. Assume a shop offers a 20% off if your bill is more than 100 yuan, and with more than 500 yuan, you can get a 40% off. After you have chosen a good of 400 yuan, the best suggestion for you is to take something else to reach 500 yuan and get the 40% off.
For the customers’ convenience, the shops often offer some low-price and useful items just for reaching such a condition. But there are still many customers complain that they can’t reach exactly the budget they want. So, the manager wants to know, with the items they offer, what is the minimum budget that cannot be reached. In addition, although the items are very useful, no one wants to buy the same thing twice.
The first line contains one integer N (1 <= N <= 1000), the number of items available.
The second line contains N integers Pi (1 <= Pi <= 10000), represent the ith item’s price.
4 1 2 3 4
11
//
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
int a[1100];
int l,r;
int ans;
int main()
{
while(scanf("%d",&n)==1)
{
for(int i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n);
l=r=0;ans=-1;
for(int i=0;i<n;i++)
{
int tl=l+a[i],tr=r+a[i];
if(tl<=r+1)
{
r=tr;
}
else
{
ans=r+1;break;
}
}
if(ans==-1) ans=r+1;
printf("%d\n",ans);
}
return 0;
}

探讨了在特定折扣规则下,如何确定商店提供商品中无法达成的最小预算总额。通过输入商品价格列表并使用算法进行处理,找出顾客无法恰好达到的最低消费金额。
739

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



