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就是需要奶牛的最小数。