题目:http://codeforces.com/contest/257/problem/A
给出接线板 用电器 原有插座的数量;
给出每个接线板的插座个数;
求最少需要多少插线板;
思路:贪心法
#include <iostream> #include <cstdlib> using namespace std; int n,m,k; int arr[55]; int cmp(const void *a,const void *b) { return *((int *)b)-*((int *)a); } int main() { cin >> n >> m >> k; for(int i=0;i<n;i++) { cin >> arr[i]; } qsort(arr,n,sizeof(int),cmp); int ans=0; if(m<=k) cout << "0"; else { int flag=1; int available=k; for(int i=0;i<n;i++) { available+=(arr[i]-1); ans++; if(available>=m) { flag=0; cout << ans << endl; break; } } if(flag) { cout << "-1"<<endl; } } return 0; }