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;
}
posted @ 2023-02-24 22:45  哲远甄骏  阅读(53)  评论(0)    收藏  举报