1228 书架

定义一个一维数组,用来存储奶牛的高度。因为奶牛越多越危险,所以要尽量使奶牛少。所以就先将最高的奶牛放在最下面,然后按照高度由大到小排列,直到奶牛总高度大于书架高度。

排序用sort比较方便,不过要加头文件 #include<algorithm>

代码:

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int cmp(int a,int b)
 5 {
 6     return a>b;
 7 }
 8 int a[30000];
 9 int main()
10 {
11     long long m=0,n,b,s=0;
12     cin>>n>>b;
13     for(int i=1;i<=n;++i)
14     {
15         cin>>a[i];
16     }
17     sort(a+1,a+n+1,cmp);
18     for(int j=1;j<=n;++j)
19     {
20         if(s<b)
21         {
22             s+=a[j];
23             m++;
24         }
25         else
26         {
27             cout<<m;
28             break;
29         }
30     }
31     return 0;
32 }

用s来表示奶牛总高度,定义一个计数器m,每次加一个奶牛,就m++。当s大于等于书架高度时,就输出m,m就是需要奶牛的最小数。

posted @ 2020-02-23 09:50  zkw666  阅读(758)  评论(0编辑  收藏  举报