1046 Shortest Distance (20)

 1 #include<stdio.h>

 2 int main()

 3 {

 4    int n,m,a,b,tem,pre,p;

 5    int i,j;

 6    int ans[100005];

 7    while(scanf("%d",&n)!=EOF)

 8    {

 9        ans[0]=0;

10        for(i=1;i<=n;i++)

11        {

12            scanf("%d",&tem);

13            ans[i]=ans[i-1]+tem;

14        }

15        getchar();

16        scanf("%d",&m);

17        for(i=0;i<m;i++)

18        {

19            getchar();

20            scanf("%d %d",&a,&b);

21            if(a<b) 

22            {

23               pre=a;

24               p=b;

25            }

26            else

27            {

28               p=a;

29               pre=b;

30            }

31 

32            int sum1=ans[p-1]-ans[pre-1];

33            int sum2=ans[pre-1]+ans[n]-ans[p-1];

34 

35            printf("%d\n",sum1<sum2?sum1:sum2);

36        }

37    }

38 

39    return 0;

40 }

 

你可能感兴趣的:(test)