某个出口到另一个出口的距离只有两种情况
情况1:顺时针走
情况2:逆时针走
利用前缀和计算两出口顺时针走时的距离
逆时针距离用总距离减去即可
C++ 代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int s[N];
int main(){
int n,m,sum_distance=0;
cin>>n;
for(int i = 1;i<=n;i++) cin>>s[i],sum_distance+=s[i];
for(int i = 1; i<=n;i++) s[i]+=s[i-1];
cin>>m;
while(m--){
int a,b;
cin>>a>>b;
if(a>b) swap(a,b);
cout<<min(s[b-1]-s[a-1],sum_distance-(s[b-1]-s[a-1]))<<endl;
}
return 0;
}