2 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int N=1e5+10; int a[N],f[N]; int main() { int n,k;scanf("%d%d",&n,&k); for(int i=1;i<=n;i++)scanf("%d",&a[i]); sort(a+1,a+n+1);a[n+1]=2e9+10; int ans=0; memset(f,0,sizeof(f)); for(int l=1,r=1,t1=0,t2=0;l<=n;l++) { while(a[l]+k>=a[r+1])r++; f[r]=max(f[r],r-l+1); t1=max(t1,f[l-1]); ans=max(ans,t1+r-l+1); } printf("%d\n",ans); return 0; } -
0
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int a[N],f[N]; int main() { int n,k;scanf("%d%d",&n,&k); for(int i=1;i<=n;i++)scanf("%d",&a[i]); sort(a+1,a+n+1);a[n+1]=2e9+10; int ans=0; memset(f,0,sizeof(f)); for(int l=1,r=1,t1=0,t2=0;l<=n;l++) { while(a[l]+k>=a[r+1])r++; f[r]=max(f[r],r-l+1); t1=max(t1,f[l-1]); ans=max(ans,t1+r-l+1); } printf("%d\n",ans); return 0; }
- 1
信息
- ID
- 567
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 34
- 已通过
- 8
- 上传者