Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long LL;
- const int maxn = 100000 + 100;
- int n, m, ans;
- int num[maxn];
- int solve() {
- sort(num, num + n);
- int idx = upper_bound(num, num + n, 0) - num;
- if (idx == 0) {
- return upper_bound(num, num + n, m) - num;
- }
- int ret = 0;
- for (int i = idx - 1; i >= 0; --i) {
- if (-num[i] > m) {
- break;
- }
- int r = upper_bound(num, num + n, m + num[i] * 2) - num;
- if (r > idx) {
- ret = max(ret, r - i);
- } else {
- ret = max(ret, idx - i);
- }
- }
- return ret;
- }
- int main() {
- #ifdef ExRoc
- freopen("test.txt", "r", stdin);
- #endif
- ios::sync_with_stdio(false);
- cin >> n >> m;
- for (int i = 0; i < n; ++i) {
- cin >> num[i];
- }
- ans = solve();
- for (int i = 0; i < n; ++i) {
- num[i] = -num[i];
- }
- ans = max(ans, solve());
- cout << ans << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement