#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); int n, k; cin >> n >> k; vector v(n); for(int i = 0; i < n; ++i) { cin >> v[i]; } sort(v.begin(), v.end()); int ret = 0; for(int i = 0; i < (int) v.size(); ++i) { // for each i find the biggest number. such that their sum does not exceed x int left_bound = i + 1; int right_bound = (int) v.size() - 1; int it = -1; while(left_bound <= right_bound) { int middle = (left_bound + right_bound) / 2; if(v[middle] + v[i] <= k) { left_bound = middle + 1; it = middle; } else { right_bound = middle - 1; } } if(it != -1) { // cout << v[i] << " " << v[it] << endl; v.erase(v.begin() + it); //erase(begin iterator, end iterator) //erase(specific iterator) } ++ret; } cout << ret << endl; } /*4 10 1, 3, 7, 9 */