牛牛与世界杯门票C语言

今年的世界杯要开始啦,牛牛作为一个球迷,当然不会放过去开幕式现场的机会。但是牛牛一个人去又觉得太过寂寞,便想叫上了他的n个小伙伴陪他一起去莫斯科(一共n+1)。当牛牛开始订开幕式的门票时,发现门票有m种套餐,每种套餐需要花费x元,包含y张门票,每张门票也可以单独购买,此时这张门票的价格为k元。请问牛牛要怎样选择购买门票,使得他花费的钱最少。(每种套餐可以购买次数没有限制)

输入描述:

第一行输入三个数字n(0≤n≤999)m(1≤m≤1000)k(1≤k≤100000)
接下来m行,每行输入两个数字xi(1≤xi≤100000)yi(2≤yi≤1000), 表示套餐的价格和套餐内包含的门票数量。

输出描述:

输出牛牛至少要花费的钱的数量。

题目来源:牛客网

题目分析:将所有情况分为全部单买和全部买套餐一直将套餐数递减进行比较来获取最小的花费。需要注意的是情况需要考虑完整。

代码:

#include <stdio.h>

int main()

{

int i,j,n,m,k,x[1000],y[1000],min=0,sum=0;

scanf("%d%d%d",&n,&m,&k);

for(i=0;i<m;i++)

{

scanf("%d%d",&x[i],&y[i]);

}

    min=k*(n+1);

for(i=0;i<m;i++)

{

sum=((n+1)/y[i])*x[i];

if((n+1)%y[i]!=0) sum=sum+x[i];

if(sum<min)min=sum;

for(j=1;j*y[i]<=n+1;j++)

{ sum=x[i]*j+(n+1-j*y[i])*k;

     if(sum<min)min=sum;

}

}printf("%d\n",min);

     return 0;

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值