Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
102490 陈馨逸 求逆序对数 C++ 通过 100 0 MS 264 KB 574 2023-09-13 13:50:41

Tests(8/8):


#include <bits/stdc++.h> using namespace std; int a[1005],r[1005],ans; void msort(int s,int t){ if(s==t)return; int mid=(s+t)/2; msort(s,mid); msort(mid+1,t); int i=s,j=mid+1,k=s; while(i<=mid&&j<=t) { if(a[i]<=a[j]) { r[k]=a[i];k++;i++; }else{ r[k]=a[j];k++;j++; ans+=mid-i+1; } } while(i<=mid) { r[k]=a[i];k++;i++; } while(j<=t) { r[k]=a[j];k++;j++; } for(int i=s;i<=t;i++)a[i]=r[i]; } int main() { int n,i; cin>>n; for(i=1;i<=n;i++)cin>>a[i]; msort(1,n) ; cout<<ans; return 0; }


测评信息: