题目大意: 给出一个循环数字序列,求两个给定数字之间距离的最小值。
CODE ⇩⇩⇩
#include <bits/stdc++.h>
using namespace std;
int dist[100005];
int main() {
int n,m,a,b,sum = 0;
cin>>n;
for(int i = 1;i <= n;i++) cin>>dist[i],sum += dist[i];
cin>>m;
while(m--){
cin>>a>>b;
if(a > b) swap(a,b);
int nx = accumulate(dist+a,dist+b,0);
cout<<min(nx,sum-nx)<<endl;
}
return 0;
}