Codeforces 149 A. Business trip

問題

12ヶ月の間花に水をやる。
それぞれの月で水をやった場合、花はa[i]cmだけ成長する。
水をやらなかった月は成長しない。


全体でkcm以上成長させたい。
最低でいくつの月水をやらなければならないか、求めよ。
kcm成長させるのが不可能な場合は-1を出力せよ。

制約条件

a[i]≦100
k≦100

方針

ソートして貪欲に大きいのから使う。
全部使ってもkに足りなければ-1

ソースコード

void run()
{
	int k,a[12];
	cin>>k;
	rep(i,12)cin>>a[i];
	sort(a,a+12);
	int ans=0, s=0;
	while(s<k&&ans<12)s+=a[12-++ans];
	cout<<(s<k?-1:ans)<<endl;
}