Vasya has got many devices that work on electricity. He's got n supply-line filters to plug the devices, the i-th supply-line filter has aisockets.
Overall Vasya has got m devices and k electrical sockets in his flat, he can plug the devices or supply-line filters directly. Of course, he can plug the supply-line filter to any other supply-line filter. The device (or the supply-line filter) is considered plugged to electricity if it is either plugged to one of k electrical sockets, or if it is plugged to some supply-line filter that is in turn plugged to electricity.
What minimum number of supply-line filters from the given set will Vasya need to plug all the devices he has to electricity? Note that all devices and supply-line filters take one socket for plugging and that he can use one socket to plug either one device or one supply-line filter.
The first line contains three integers n, m, k (1 ≤ n, m, k ≤ 50) — the number of supply-line filters, the number of devices and the number of sockets that he can plug to directly, correspondingly. The second line contains n space-separated integers a1, a2, ..., an(1 ≤ ai ≤ 50) — number ai stands for the number of sockets on the i-th supply-line filter.
Print a single number — the minimum number of supply-line filters that is needed to plug all the devices to electricity. If it is impossible to plug all the devices even using all the supply-line filters, print -1.
3 5 3
3 1 2
1
4 7 2
3 3 2 4
2
5 5 1
1 3 1 2 1
-1
In the first test case he can plug the first supply-line filter directly to electricity. After he plug it, he get 5 (3 on the supply-line filter and 2 remaining sockets for direct plugging) available sockets to plug. Thus, one filter is enough to plug 5 devices.
One of the optimal ways in the second test sample is to plug the second supply-line filter directly and plug the fourth supply-line filter to one of the sockets in the second supply-line filter. Thus, he gets exactly 7 sockets, available to plug: one to plug to the electricity directly, 2 on the second supply-line filter, 4 on the fourth supply-line filter. There's no way he can plug 7 devices if he use one supply-line filter.
水题,每加一个拖线板要占掉一个插头,把拖线板的插头书都减一,再排序就可以了。
附代码:
1 #include<iostream> 2 #include<cstdlib> 3 using namespace std; 4 int cmp( const void *a, const void *b) 5 { 6 return *(int*) b-*(int*)a; 7 } 8 9 int arr[50]={0}; 10 11 int main(void) 12 { 13 int n, m, k, ans=0, sum=0; 14 int i; 15 16 cin>>n>>m>>k; 17 for( i=0; i<n; i++) 18 { 19 cin>>arr[i]; 20 } 21 qsort( arr, n, sizeof( int), cmp); 22 sum+=k; 23 i=0; 24 while( sum<m) 25 { 26 if( i==n) 27 { 28 ans=-1; 29 break; 30 } 31 sum+=arr[i]; 32 sum-=1; 33 i++; 34 ans++; 35 } 36 cout<<ans<<endl; 37 38 return 0; 39 }