电梯
测试数据来自 wjszez/1747
小 X 家所在单元共有两部电梯,小 X 家所在小区的楼层都是 33 层高。小 X 对于这两部电梯是怎么 调度的十分感兴趣。根据小 X 每天的观察,他发现对于两部电梯在没有请求的时候有一个初始状态,一 部电梯一定在 1 层,一部电梯一定在 33 层。
我们将对于电梯的一次请求简化为 x,y,表示有一个人想要从 x 层前往 y 层。电梯的工作方式是依 次处理每个请求,而接到某个请求之后,电梯系统会计算哪部电梯离 x 层更近,那么就由更近的那部响 应。如果距离相同则由运方向一致的电梯响应。(如果不能理解可以看样例解释)
为了方便计算,假设每个请求都是在上一个请求响应完毕(即响应的那部电梯已经到达 y 层)之后 才发生的。请根据输入的请求计算两部电梯总共运行了多少层?
Input
输入第一行为一个数 n,表示共有 n 个请求 接下来 n 行每行两个正整数 x, y,代表一个请求
初始时电梯一部在 1 层,一部在 33 层,只有上一个请求响应完毕之后才会响应下一个请求
Output
输出仅一行一个数 ans,代表两部电梯一共运行的层数
Example
stdin
5
2 10
32 30
20 30
25 10
20 10
stdout
72
Explanation
初始两部电梯分别在 1 层和 33 层,为了方便说明,我们称在 1 层的那部电梯称为一号电梯,另一部为二号电
梯。第一次请求:2 10,一号电梯离 2 层更近,所以它响应,响应结束后一号电梯在 10 层,共运行了 9 层,
第二次请求:32 30,二号电梯离 32 层更近,所以它响应,响应结束后二号电梯在 30 层,共运行了 3 层。
第三次请求:20 30,一号二号电梯距离 20 层都是 10 层,但一号响应,因为一号在 10 层,从 10 层到 20 层
与从 20 层到 30 层的方向一致,所以一号响应,响应结束后一号在 30 层,共运行了 20 层
第四次请求:25 10,一号二号电梯都在 30 层,所以一号二号任意一部电梯响应都没有区别,为了方便描述,
我们指定一号电梯响应。响应结束后一号电梯在 10 层,共运行了 20 层
第五次请求:20 10,一号二号电梯距离 20 层都是 10 层,但二号响应,因为二号在 30 层,从 30 层到 20 层
与从 20 层到 10 层的方向一致,所以二号响应,响应结束后二号在 10 层,共运行了 20 层
两部电梯共运行了 9 + 3 + 20 + 20 + 20 = 72 层
Scoring
• 对于 40% 的数据,1 ≤ x, y ≤ 16
• 对于 100% 的数据,1 ≤ n ≤ 105,1 ≤ x, y ≤ 33,x ̸= y
信息
- ID
- 2157
- 难度
- (无)
- 分类
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者