#4581. 0587Tunnel

0587Tunnel

问题名称​:Tunnel

问题描述​: 在n分钟内,记录了隧道入口和出口每分钟通过的车辆数。共有n+2行数据,其中:

  • 第一行是一个正整数n,表示调查的时间为n分钟。
  • 第二行是一个正整数m,表示调查开始时隧道内的车辆数。
  • 接下来的n行中,每一行包含两个整数,分别表示第i分钟内进入隧道和离开隧道的车辆数。

在调查过程中,假设第j分钟后隧道内的车辆数为Sj。输出隧道内的最大车辆数。如果在任何时刻隧道内的车辆数变为负数,则输出0表示错误。

输入格式​:

  • 第一行包含一个整数n(1 ≤ n ≤ 10000),表示调查的时间。
  • 第二行包含一个整数m(0 ≤ m ≤ 100),表示开始时隧道内的车辆数。
  • 接下来的n行,每行包含两个整数a和b,分别表示第i分钟内进入和离开隧道的车辆数。

输出格式​:

  • 输出隧道内车辆数的最大值。如果在任何时刻车辆数为负数,则输出0。

输入输出示例​:

输入示例 1

3
2
2 3
2 3
4 1

输出示例 1

3

输入示例 2

3
2
2 3
2 4
4 1

输出示例 2

0

输入示例 3

3
2
2 3
2 3
1 0

输出示例 3

2

算法​:

  1. 初始化隧道内的车辆数为m。
  2. 对于每一分钟,根据进入和离开隧道的车辆数更新隧道内的车辆数。
  3. 如果在任何时刻隧道内的车辆数变为负数,则输出0并终止。
  4. 否则,记录每分钟后的车辆数,并最终输出最大车辆数。

时间复杂度​:

  • 对于每分钟的更新操作是O(1),需要进行n次更新,时间复杂度为O(n)。

版权信息​: 题目来源于日本信息奥林匹克委员会。