1
+ #include < bits/stdc++.h>
2
+
3
+ using namespace std ;
4
+ typedef long long ll;
5
+
6
+ void solve () {
7
+ int n;
8
+ cin >> n;
9
+
10
+ // 存储每天的燃油消耗
11
+ vector<ll> A (n + 1 ), B (n + 1 );
12
+ // 前缀和数组
13
+ vector<ll> prefix_A (n + 1 , 0 ), prefix_B (n + 1 , 0 );
14
+
15
+ for (int i = 1 ; i <= n; ++i) {
16
+ cin >> A[i];
17
+ }
18
+ for (int i = 1 ; i <= n; ++i) {
19
+ cin >> B[i];
20
+ }
21
+
22
+ // 读入燃油消耗
23
+ for (int i = 1 ; i <= n; ++i) {
24
+ // 计算前缀和
25
+ prefix_A[i] = prefix_A[i - 1 ] + A[i];
26
+ prefix_B[i] = prefix_B[i - 1 ] + B[i];
27
+ }
28
+
29
+ // 初始最小消耗:全程用A或B
30
+ ll min_cost = min (prefix_A[n], prefix_B[n]);
31
+
32
+ // 情况1:从A切换到B
33
+ for (int k = 1 ; k < n; ++k) {
34
+ ll cost = prefix_A[k] + (prefix_B[n] - prefix_B[k]);
35
+ min_cost = min (min_cost, cost);
36
+ }
37
+ // 情况2:从B切换到A
38
+ for (int k = 1 ; k < n; ++k) {
39
+ ll cost = prefix_B[k] + (prefix_A[n] - prefix_A[k]);
40
+ min_cost = min (min_cost, cost);
41
+ }
42
+
43
+ // 输出结果
44
+ cout << min_cost << endl;
45
+ }
46
+
47
+ signed main () {
48
+ ios::sync_with_stdio (false );
49
+ cin.tie (nullptr );
50
+
51
+ int t = 1 ;
52
+ // cin >> t;
53
+ while (t--) solve ();
54
+ return 0 ;
55
+ }
56
+
57
+ /*
58
+ 燃油交换【算法赛】
59
+ */
0 commit comments