1 条题解

  • 1
    @ 2026-4-28 21:16:40

    第一眼 第一眼 105! 10^5 !

    ,暴力,不行!!! 额,暴力,不行!!!

    那我直接截区间。 那我直接截区间。

    走你! 走你!

    #include<bits/stdc++.h>
    #define endl "\n"
    using namespace std;
    long long a[2000005];
    int main(){
    	int n,k;
    	cin>>n>>k;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}	
    	sort(a+1,a+n+1);
    	long long end[2000005]={0};
    	int m=n-k;
    	for(int i=1;i<=n-m;i++){
    		end[i]=a[i+m-1]-a[i];	
    	} 
    	long long minn=LLONG_MAX;
    	for(int i=1;i<=n-m;i++){
    		minn=min(minn,end[i]);
    	}
    	cout<<minn;
    	return 0;
    }
    

    (一种植物) 我(一种植物)

    等一下! 等一下! $总共 n 个数字,左边第一个编号是 1, 右边第一个编号是 n ,从右往左数的第 m 个元素的编号是几?$ nm+1!!! 是n-m+1!!!

    来!

    #include<bits/stdc++.h>
    #define endl "\n"
    using namespace std;
    long long a[2000005];
    int main(){
    	int n,k;
    	cin>>n>>k;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}	
    	sort(a+1,a+n+1);
    	long long end[2000005]={0};
    	int m=n-k;
    	for(int i=1;i<=n-m+1;i++){
    		end[i]=a[i+m-1]-a[i];	
    	} 
    	long long minn=LLONG_MAX;
    	for(int i=1;i<=n-m+1;i++){
    		minn=min(minn,end[i]);
    	}
    	cout<<minn;
    	return 0;
    }
    

    哦,对了,end要开全局 哦,对了,end要开全局

    • 1

    信息

    ID
    921
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    7
    已通过
    2
    上传者