#include <iostream>
using namespace std;
int n,a[500010],sum=0;
void mergesort(int n){
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(a[i]>a[j])sum++;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
mergesort(n);
cout<<sum;
return 0;
}
救救我吧,各位大佬,看看这个代码有什么问题
#include <iostream>
using namespace std;
int n,K,a[5000010],temp[50010],max=0;
void mergesort(int n,int K){
if(n==0)return;
int mid=n/2;
mergesort(1,mid);
mergesort(mid+1,n);
int i=1;
int j=mid+1,k=1;
while(i<=mid&&j<=n){
if(a[i]<=a[j])temp[k++]=a[i++];
else temp[k++]=a[j++];
}
i=1;
while(i <= mid)temp[k++]=a[i++];
while(j <= n)temp[k++]=a[j++];
}
int main(){
cin>>n>>K;
for(int i=1;i<=n;i++)cin>>a[i];
if(K==0){
cout<<a[1];
return 0;
}
mergesort(n,K);
cout<<a[K+1];
return 0;
}
还有这个