257A - Sockets - CodeForces Solution


greedy implementation sortings *1100

Please click on ads to support us..

Python Code:

n, m, k = map(int, input().split())
filters = [int(i) for i in input().split()]
filters.sort()
ports = k
count = 0
while ports < m and filters:
    ports += filters[-1] - 1
    filters.pop()
    count += 1
if ports >= m:
    print(count)
else:
    print(-1)

C++ Code:

#include <bits/stdc++.h>
using namespace std;
 
#define endl '\n'
#define int long long
 
const int MOD = 1e9 + 7;
const int INF = LLONG_MAX >> 1;

signed main(){
	ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n,m,k;
    cin >> n >> m >> k;
    int a[n];
    for(int i = 0; i < n; ++i)cin >> a[i];

	sort(a,a+n, greater<int>());
	if(k >= m)cout << "0";
	else{
		int sum = a[0] + k - 1;
		if(sum >= m){
	    		cout << "1";
	    		return 0;
	        }
	    else{
		    for(int i = 1; i < n; ++i){
		        sum += a[i] - 1;
		    	// cout << sum << i << endl;
		      	if(sum >= m){
		    		cout << i+1;
		    		return 0;
		        }
		    }
		}
    	cout << "-1";
	}
	
}


Comments

Submit
0 Comments
More Questions

43A - Football
50A - Domino piling
479A - Expression
1480A - Yet Another String Game
1216C - White Sheet
1648A - Weird Sum
427A - Police Recruits
535A - Tavas and Nafas
581A - Vasya the Hipster
1537B - Bad Boy
1406B - Maximum Product
507B - Amr and Pins
379A - New Year Candles
1154A - Restoring Three Numbers
750A - New Year and Hurry
705A - Hulk
492B - Vanya and Lanterns
1374C - Move Brackets
1476A - K-divisible Sum
1333A - Little Artem
432D - Prefixes and Suffixes
486A - Calculating Function
1373B - 01 Game
1187A - Stickers and Toys
313B - Ilya and Queries
579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game