#6826. 公交还是火车

公交还是火车

公交还是火车?

题目描述

小明需要走一条由 N 段道路 组成的线路。

对于每一段道路,小明都有两种交通方式可以选择:

  • 火车:耗时为 Train[i]
  • 公交:耗时为 Bus[i]

小明希望从起点走到终点,使得总耗时最少

请你计算小明走完全程所需要的最少时间。


输入格式

第一行:

N

表示道路的段数。

第二行:

Train[1] Train[2] ... Train[N]

表示每一段道路乘坐火车所需要的时间。

第三行:

Bus[1] Bus[2] ... Bus[N]

表示每一段道路乘坐公交所需要的时间。


输出格式

输出一个整数:

表示走完全程的最少总时间。


数据范围

  • 1 ≤ N ≤ 100000
  • 每段时间均为正整数。
  • 答案可能较大,请使用 64 位整数 保存。

C++:

long long

样例 1

输入

4
5 7 3 8
6 4 2 10

输出

19

解释

每一段选择耗时更短的交通方式:

路段 火车时间 公交时间 选择 耗时
第1段 5 6 火车 5
第2段 7 4 公交 4
第3段 3 2 2
第4段 8 10 火车 8

总时间:

5 + 4 + 2 + 8 = 19

样例 2

输入

3
3 2 7
4 2 1

输出

6

解释

选择:

  • 第1段:火车 3
  • 第2段:火车 2
  • 第3段:公交 1

总时间:

3 + 2 + 1 = 6

样例 3

输入

5
10 20 30 40 50
9 21 29 100 49

输出

117

解题思路

每一段道路之间互不影响。

i 段:

可以选择:

Train[i]

或者:

Bus[i]

为了让总时间最小,第 i 段一定选择:

min(Train[i], Bus[i])

最后将所有路段的最小时间相加即可。