PAT 甲级 A1046 (2019/01/28)

 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4 const int MAXN = 100001;
 5 int dis[MAXN], A[MAXN];
 6 int main(){
 7     int n, query, sum_1, sum_2, start, end;
 8     scanf("%d",&n);
 9     for(int i = 1; i <= n; i++)
10         scanf("%d",&dis[i]);
11     
12     scanf("%d",&query);
13     for(int i = 0; i < query; i++){
14         scanf("%d%d",&start,&end);
15         if(start>end){
16             swap(start,end); 
17         }
18         //计算顺时针的路径长度 
19         for(int j = start; j < end; j++){
20             sum_1 += dis[j];
21         }
22         //计算逆时针的路径长度
23         for(int j = end; j <= n; j++){
24             sum_2 += dis[j];
25         }    
26         for(int k = 1; k < start; k++){
27             sum_2 += dis[k];
28         }
29         //比较顺和逆路径长度大小 
30         if(sum_1 > sum_2)
31             A[i] = sum_2;
32         else
33             A[i] = sum_1;
34         sum_1 = 0;
35         sum_2 = 0;
36     }
37     for(int i = 0; i < query; i++){
38         printf("%d\n",A[i]); 
39     } 
40     return 0;
41 } 

猜你喜欢

转载自www.cnblogs.com/zjsaipplp/p/10415751.html