Untitled
unknown
plain_text
a year ago
857 B
3
Indexable
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int minBoatTrips(int n, int x, vector<int>& weights) {
// Sort the weights in ascending order
sort(weights.begin(), weights.end());
int i = 0, j = n - 1;
int trips = 0;
while (i <= j) {
// Check if the lightest and heaviest can fit together
if (weights[i] + weights[j] <= x) {
// If they fit, take both
i++;
}
// In any case, the heaviest person (at j) takes a trip
j--;
trips++;
}
return trips-1;
}
int main() {
int n, x;
cin >> n >> x;
vector<int> weights(n);
for (int i = 0; i < n; i++) {
cin >> weights[i];
}
cout << minBoatTrips(n, x, weights) << endl;
return 0;
}
Editor is loading...
Leave a Comment