逆天 n^2 过万
查看原帖
逆天 n^2 过万
524085
yanbinmu楼主2024/12/14 11:33

如题

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

const int  N = 50005;

int a[N];
int lst[N];

int main() {
	int n, k;
	cin >> n >> k;
	for(int i = 1;i <= n;i ++ ) {
		cin >> a[i];
	}
	sort(a + 1, a + n + 1);
	for(int i = 1, j = 0;i <= n;i ++ ) {
		while(j < n && a[j + 1] - a[i] <= k) j ++ ;
		lst[i] = j;
	}
	int ans = 0;
	for(int i = 1;i <= n;i ++ ) {
		for(int j = lst[i] + 1;j <= n;j ++ ) {
			ans = max(ans, lst[i] - i + 1 + lst[j] - j + 1);
//			cout << i << " " << j << "  " << lst[i] - i + 1 + lst[j] - j + 1 << "\n";
		}
	}
	cout << ans;
	return 0;
}
2024/12/14 11:33
加载中...