nyoj-265-积木

 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         

 

posted @ 2013-07-07 15:11  nylg-haozi  阅读(142)  评论(0编辑  收藏  举报