陷阱:
是个圈,第一个数字有可能比第二个大。
代码:
#include "iostream"
#include "vector"
#include "string"
#include "cstring"
using namespace std;
int main()
{
int N, M;
int Distance[100000], total = 0;
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> Distance[i];
total += Distance[i];
}
cin >> M;
for (int i = 0; i < M; i++)
{
int temp1, temp2;
cin >> temp1 >> temp2;
if(temp1 > temp2)
{
int temp = temp1;
temp1 = temp2;
temp2 = temp;
}
int result = 0;
for (int k = temp1 - 1; k < temp2 - 1; k++)
{
result += Distance[k];
}
if (total - result > result)
cout << result << endl;
else
cout << total - result << endl;
}
}
本文介绍了一种用于解决特定区间内元素求和问题的算法。该算法首先输入一系列整数并计算总和,然后接收多个查询请求,每个请求包含两个整数作为区间边界,根据这些边界返回区间的最小可能距离或最大可能距离。通过一次遍历即可得到结果,适用于需要频繁查询区间距离的场景。
1208

被折叠的 条评论
为什么被折叠?



