PKU 3627 Bookshelf

http://poj.org/problem?id=3627
n匹の牛がいて、高さh_iを持っている。
本棚は一番うえの段以外は埋まっていて、一番うえは高さbとなっている。出来るだけ少ない牛を積み上げて本棚の高さまで到達したいときに、その牛の最小数を求めよというような問題。
易。

ソートして大きい順に足していくだけ。

int in[20000];

main(){
  ll n,b;
  cin>>n>>b;
  rep(i,n)cin>>in[i];

  sort(in,in+n,greater<int>());
  ll s=0;
  rep(i,n){
    s+=in[i];
    if(s>=b){
      cout<<i+1<<endl;
      break;
    }
  }
}