我自己提交re了,样例能对
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define maxn 2005
struct node{
int d,x;
};
node a[maxn];
int t,k,p[maxn];
bool cmp(node x,node y){
return x.d<y.d || (x.d == y.d && x.x<y.x);
}
int mysort(int l,int r){
if(l>=r)
return 0;
int mid=(l+r)/2;
int sum=mysort(l,mid)+mysort(mid+1,r);
int i=l,j=mid+1,k=1;
while(i<=mid && j<=r){
if(a[i].x <=a[j].x)
p[k++]=a[i++].x ;
else{
sum+=mid-i+1;
p[k++]=a[j++].x;
}
}
while(i<=mid)
p[k++]=a[i++].x;
while(j<=r)
p[k++]=a[j++].x ;
for(int i=l,j=1;i<=r;i++,j++)
a[i].x=p[j];
return sum;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>t;
for(int i=1;i<=t;i++){
memset(p,0,sizeof(p));
memset(a,0,sizeof(a));
cin>>k>>k>>k;
for(int i=1;i<=k;i++)
cin>>a[i].d>>a[i].x;
sort(a+1,a+k+1,cmp);
cout<<"Test case "<<i<<": "<<mysort(1,k)<<endl;
}
return 0;
}