云服务器

商务合作:179001057@qq.com

7-5 堆中的路径 (25 分)

xiaoxiao2021-11-25  21


某平台价值19860元的编程课程资料免费领取【点我领取】


#include<stdio.h> int main() {    int n,m,n1;   scanf("%d%d",&n,&m);   n1=n;   int min[1002],i=0,j,ord[1001];   int tran;   while(n-->0)   {     scanf("%d",&min[i]);     j=i;     while((min[j]<min[(j-1)/2])&&(j>=1))     {       tran=min[j];       min[j]=min[(j-1)/2];       min[(j-1)/2]=tran;       j=(j-1)/2;     }      i++;   }

  i=0;   int m1=m;   while(m-->0)       scanf("%d",&ord[i++]);

  for(j=0;j<m1;j++)   {       ord[j]--;       while(ord[j]!=0)       {           printf("%d ",min[ord[j]]);           ord[j]=(ord[j]-1)/2;       }       printf("%d\n",min[ord[j]]);   }   return 0; }