求助,能过样例,但只能Ac3个点
查看原帖
求助,能过样例,但只能Ac3个点
967480
jiunichenyin楼主2024/5/1 11:20
#include<iostream>
#include<iomanip>
#include<math.h>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<vector>
#include<set>
#include<stack>
#include<map>
#define maxn 10000100
using namespace std;
int n, k,daxiao[maxn],shuniang[maxn],zhizhen=1,mins,sum=1;
int read();
int main() {
    cin >> n >> k;
    for (int i = 1; i <= n; ++i) {
        cin>> daxiao[i];
    }
    sort(daxiao + 1, daxiao + 1 + n);
    mins = daxiao[1];
    if (n == 1) {
        cout << 1 << endl;
        return 0;
    }
    for (int i = 2; i <= n; ++i) {
        if (daxiao[i] - mins > k) {
            mins = daxiao[i];
            shuniang[zhizhen++] = sum;
            sum =1;
        }
        else {
            sum++;
        }
        if (i == n) {
            shuniang[zhizhen++] = sum;
        }
    }
    sort(shuniang + 1, shuniang + 1 + zhizhen);
    cout << shuniang[zhizhen] + shuniang[zhizhen - 1] << endl;
    return 0;
}
inline int read() {
    int w = 1, q = 0;
    char ch = ' ';
    while (ch != '-' && (ch < '0' || ch > '9')) ch = getchar();
    if (ch == '-') w = -1, ch = getchar();
    while (ch >= '0' && ch <= '9') q = q * 10 + ch - '0', ch = getchar();
    return w * q;
}
2024/5/1 11:20
加载中...