1 #include<stdio.h> 2 struct jm 3 { 4 int w; 5 int h; 6 }w[21]; 7 int main() 8 { 9 int s,n,i,j,b,min; 10 int a[21]; 11 scanf("%d",&s); 12 while(s--) 13 { 14 scanf("%d",&n); 15 for(i=0;i<n;i++) 16 { 17 scanf("%d %d",&w[i].w,&w[i].h); 18 a[i]=w[i].w; 19 } 20 scanf("%d",&b); 21 for(min=1001,i=0;i<n;i++) 22 { 23 if(w[i].h>=min) continue; 24 for(j=1;i>=j&&w[i].h>=w[i-j].h;j++)//**求到左边高于自己积木的距离**// 25 { 26 a[i]=a[i]+w[i-j].w; 27 } 28 for(j=1;i+j<n&&w[i].h>=w[i+j].h;j++)//**求到右边高于自己积木的距离**// 29 { 30 a[i]=a[i]+w[i+j].w; 31 } 32 if(a[i]>=b) min=w[i].h; 33 } 34 printf("%d ",min+b); 35 } 36 return 0; 37 } 38