CCF-GESP计算机学会等级考试2026年6月一级C++T1 去旅行
·
B4551 [GESP202606 一级] 去旅行
题目描述
快暑假了,小杨同学正在计划出去旅行,前往目的地的方案多种多样,小杨同学想知道如何前往目的地最便宜。
小杨同学住在 AAA 市,旅行目的地是 BBB 市,小杨同学前往目的地有三种方案:
- 从 AAA 市直飞 BBB 市;
- 从 AAA 市坐高铁到 CCC 市,然后坐飞机到 BBB 市;
- 从 AAA 市坐高铁到 CCC 市,然后坐高铁到 BBB 市。
请帮小杨同学求出最便宜的出行方案的价格。
输入格式
输入包含 444 行,每行一个正整数:
- 第 111 行的正整数表示「从 AAA 市直飞 BBB 市」的价格;
- 第 222 行的正整数表示「从 AAA 市坐高铁到 CCC 市」的价格;
- 第 333 行的正整数表示「从 CCC 市坐飞机到 BBB 市」的价格;
- 第 444 行的正整数表示「从 CCC 市坐高铁到 BBB 市」的价格。
输出格式
输出一个正整数,表示 333 种方式中,最便宜的出行方案的价格。
输入输出样例 #1
输入 #1
999
105
699
588
输出 #1
693
输入输出样例 #2
输入 #2
9
3
8
7
输出 #2
9
说明/提示
样例解释 1
方案 111. 直飞价格为 999999999;
方案 222. 高铁转飞机价格为 105+699=804105 + 699 = 804105+699=804;
方案 333. 高铁的价格为 105+588=693105 + 588 = 693105+588=693;
因此最便宜的价格是 693693693。
样例解释 2
方案 111. 直飞价格为 999;
方案 222. 高铁转飞机价格为 3+8=113 + 8 = 113+8=11;
方案 333. 高铁的价格为 3+7=103 + 7 = 103+7=10;
因此最便宜的价格是 999。
数据范围
所有输入均为正整数,且不超过 100001000010000。
解析
取三种方案的最小值,详见代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;
// 方案1:直飞 a
// 方案2:高铁到C + 飞机到B = b + c
// 方案3:高铁到C + 高铁到B = b + d
int ans = min(a, min(b + c, b + d));
cout << ans << endl;
return 0;
}
更多推荐
所有评论(0)