Click Here to go back to the homepage.

Planetaris Solution:


#include <bits/stdc++.h>
using namespace std;

std::vector<std::string> stringSplit(const std::string &s, char delimiter=' '){
   std::vector<std::string> tokens;
   std::string token;
   std::istringstream tokenStream(s);
   while (getline(tokenStream, token, delimiter)){
      tokens.push_back(token);
   }
   return tokens;
}

int main() {
    // #ifndef TESTING
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);
    // #endif

    string line;
    getline(cin, line);
    auto split = stringSplit(line);
    int systems = stoi(split[0]), ships = stoi(split[1]);
    getline(cin, line);
    split = stringSplit(line);
    vector<int> placements;
    transform(split.begin(), split.end(), back_inserter(placements), [](const string &s){ return stoi(s);});
    sort(placements.begin(), placements.end());
    int ans = 0;
    for(auto it = placements.begin(); it != placements.end(); it++, ans++){
        if((ships -= *it + 1) < 0){
            break;
        }
    }
    cout << ans;

    return 0;
}