#4#5TLE,60pts求调,必关
查看原帖
#4#5TLE,60pts求调,必关
1765983
maxWEI2014楼主2025/8/30 18:12
#include<bits/stdc++.h>
using namespace std;
int a[5000001],b[5000001];
void m(int* a,int* b,int f,int l,int mid){
    int i=f,j=mid+1,k=f;
    while(i!=mid+1&&j!=l+1) {
        if(a[i]>a[j]){
            b[k++]=a[j++];
        }else{
            b[k++]=a[i++];
        }
    }
    while(i!=mid+1){
        b[k++]=a[i++];
    }
    while(j!=l+1){
        b[k++]=a[j++];
    }
    for(i=f;i<=l;i++){
        a[i]=b[i];
    }
}
void m_s(int* a,int* b,int f,int l){
    int mid=(f+l)/2;
    if(f<l){
        m_s(a,b,f,mid);
        m_s(a,b,mid+1,l);
        m(a,b,f,l,mid);
    }
}
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    m_s(a,b,1,n);
    cout<<b[m+1];
    return 0;
}
2025/8/30 18:12
加载中...