H.小沙的店铺
H.小沙的店铺
题目描述
小沙最近开了一个商铺,由于缺乏经验,他并不知道一开始的物品定价为多少,所以他想刚开始定一个很便宜的价格 x ,每卖出去 k 件的商品数,单价便上涨 y 元,现有 n 个客户来购买小沙的商品,第一个客户购买 n 个物品,第二个购买 n−1 个依次递减,客户的顺序无法改变。请问小沙想要卖出去至少 T 元,至少需要接待多少个客户,每次涨价都是在客户买完之后,即每个客户在购买时,价格不会变化。如果接待完 n 个客户都没有卖出去至少 T 元的货物的话,输出 −1。
输入描述:
第一行输入五个整数 x , y , k , n , T,\(1 \le x,y \le 10^3\),\(1 \le k \le 10^9\),\(1 \le n \le 10^4\),\(1\le T \le 10^{18}\)。
输出描述:
输出一个整数代表答案。
输入
10 1 2 5 172
输出
4
说明
第一个客户卖出去50元,总共卖出5件商品,物品单价上涨为12
第二个客户卖出去48元,总共卖出9件商品,物品单价上涨为14
第三个客户卖出去42元,总共卖出12件商品,物品单价上涨为16
第四个客户卖出去32元,总共卖出14件商品,物品单价上涨为17
总共卖出172元。
思路点拨
- 签到题,注意数据范围即可。
提交代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int x,y,k,n,T;
cin>>x>>y>>k>>n>>T;
int ans=0;
int sum=0;
int x1=x;
for(int i=n;i>0;i--)
{
sum+=i;
ans+=x1*i;
if(ans>=T)
{
cout<<n-i+1<<"\n";
return 0;
}
int t=sum/k;
x1=x+t*y;
}
cout<<-1<<"\n";
return 0;
}

浙公网安备 33010602011771号