0、题目概述
【问题描述】
小希最近找到了大公司的客户经理的新工作,每天工作时间为 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
【样例说明】
每天都是全新的一天,昨天的工作不影响今天哟!
【评分标准】
1、分析
这一题较为简单。只需要判断两位客人来到的之间差是a的多少倍即可。最后一位客人到下班同理。
2、解决方案
先求出下一位客人的到来时间与上一位客人的离开时间之差,然后再对a求商。
3、代码
#include <iostream>为避免学校oj系统查重抄袭,所有变量在使用时请进行修改
using namespace std;
int main()
{
int a,b,c,d,e,f=0,g,h=0;
cin>>a>>b>>c;
for (int i=0; i<a; i++)
{
cin>>d>>e;//读入客人的到达时间和服务时间
g=d;//下一位客人的到达时间赋给g
h+=(g-f)/c;//h用来记录放松时间,g-f为两位客人之间的时间差,c为一次休息所需时间
f=g+e;//将当前客人的离开时间赋给f
}
cout<<h+(b-f)/c;//不要忘了最后一位客人离开到下班的这段时间
return 0;
}
4、总结
这一题较为简单,没有什么思维难度。只需注意同一位客人到达和离开时间不同即可。并且题目表示:在服务上一位客人的时候不会有下一位客人到达,简化了计算。
我还是没有明白样例说明是什么意思。