682 B
682 B
两个注意点
- x 可以比 y 大,题目没规定 x 和y 的大小顺序
- 累计相加的数可能超过int
#include <iostream>
#include <vector>
using namespace std;
int main () {
int n;
cin >> n;
vector<int> vec(2* n + 1, 0);
for (int i = 1; i <= n; i++) {
cin >> vec[i];
vec[n + i] = vec[i];
}
int x, y;
cin >> x >> y;
int xx = min(x ,y); // 注意点1:x 可以比 y 大
int yy = max(x, y);
long long a = 0, b = 0; // 注意点2:相加的数可能超过int
for (int i = xx; i < yy; i++) a += vec[i];
for (int i = yy; i < xx + n; i++ ) b += vec[i];
cout << min(a, b) << endl;
}