小希的新工作

【问题描述】

   小希最近找到了大公司的客户经理的新工作,每天工作时间为 L 分钟,他主要为 n 个固定的高端客人服务,第 i 个客人会在第 ti 分钟到来,他需要为其服务 li 分钟,在此期间不会有其他客人到来。

   他喜欢在工作的间隙放松一下,喝杯咖啡,或者做做简单的运动,每次需要 a 分钟的时间,如果可以,这样惬意的事情他能够连续做好多次。但在有顾客的时间里,他必须在工作岗位上,否则,他会被投诉。那么,在一天的工作时间之内,他最多有几次这样轻松的时光?

【输入形式】

   输入的第一行包含3个整数 n、L 和 a。

   接下来的 n 行,每行两个整数 ti  和 li,分别表示第i个客人到来的时间和需要服务的时间,输入保证 ti+li ≤ ti+1

【输出形式】

   输出为一个整数,表示小希在一天的工作时间内最多可以放松多少次?

【样例输入】
2 11 3
0 1
1 1

【样例输出】
3

#include<iostream>
using namespace std;
int main()
{
	int n,L,a;
	cin>>n>>L>>a;
	int z[n][2],q[n];
	//定义二维数组z客人到来的时间及服务时间,数组q存储时间间隔
	//n个客人有n-1个间隔再加上总时间减去服务总时间的一个间隔
	//总时间减去服务总时间,可分为两部分放置在首末客人到来前后,但放在一处时除a可得最大值(两处会去掉小数部分,小数部分相加可能会大于1)
	for(int x=0;x<n;x++)
	{
		for(int y=0;y<2;y++)
		{
			cin>>z[x][y];  //输入数据
		}
	}
	for(int i=0;i<n-1;i++)
	{
		q[i]=z[i+1][0]-z[i][0]-z[i][1];
		//赋值间隔时间=后一个客人到来时间-(前一个客人到来时间+服务时间)
	}
	q[n-1]=L-z[n-1][0]-z[n-1][1]+z[0][0];
	//赋值总时间间隔=总时间-(最后一个客人到来时间+服务时间-第一个客人到来时间)
	int num=0;  //定义次数
	for(int s=0;s<n;s++)  //循环赋值
	{
		num=num+q[s]/a;
	}
	cout<<num;
	return 0;
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值