1046 Shortest Distance (20分)

一个环的问题,分两份。

#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;
	}
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:00
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务