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\n",min+b);
35 }
36 return 0;
37 }
38