一个环的问题,分两份。

#include<iostream>
#include<cstdio>
#include<algorithm>
#define maxn 100005
using namespace std;

int n,m;
int dist[maxn];
int sum=0;
int d;
int main()
{
   
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++) 
	{
   
		int temp; 
		cin>>temp;
		sum+=temp;
		dist[i]=sum;
	}
	cin>>m;
	while(m--)
	{
   
		int t1,t2;
		cin>>t1>>t2;
		if(t1>t2)
		swap(t1,t2);
		d=dist[t2-1]-dist[t1-1];
		cout<<min(d,sum-d)<<endl;
	}
}