1046. Shortest Distance (20)

    xiaoxiao2021-08-24  70

    #include<iostream> #include<algorithm> using namespace std; int main(){ int n,i; cin>>n; int d[n+1]; int sum[n+1]; sum[1]=0;//1~1的距离为0 for(i=1;i<n;i++){ scanf("%d",&d[i]); sum[i+1]=sum[i]+d[i];//sum[i]记录i节点到1节点的正向距离 } scanf("%d",&d[i]); sum[0]=sum[i]+d[i];//整个环路的和 int m; cin>>m; while(m--){ int s,e,dis=0; scanf("%d%d",&s,&e); if(s>e){ swap(s,e); } dis=sum[e]-sum[s]; if(dis>sum[0]-dis) dis=sum[0]-dis; printf("%d\n",dis); } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-676995.html

    最新回复(0)