记录编号 |
247440 |
评测结果 |
AAAAAAAAAA |
题目名称 |
排序工作量 |
最终得分 |
100 |
用户昵称 |
GaoErFu |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.000 s |
提交时间 |
2016-04-09 08:30:09 |
内存使用 |
0.07 MiB |
显示代码纯文本
#include<stdio.h>
float a[10010]={0};
float b[10010]={0};
long long ans=0;
void msort(int l,int r)
{
if(l>=r)return ;
int mid,k=l,i,j,q;
mid=(l+r)/2;
msort(l,mid);
msort(mid+1,r);
i=l;
j=mid+1;
q=0;
while(i<=mid&&j<=r)
{
if(a[i]<=a[j]){b[k++]=a[i++];ans+=q;}
else if(a[i]>a[j]){b[k++]=a[j++];q++;}
}
while(i<=mid)
{b[k++]=a[i++];ans+=q;}
while(j<=r)
{b[k++]=a[j++];}
for(i=l;i<=r;i++)a[i]=b[i];
}
int co()
{
freopen("sortt.in","r",stdin);
freopen("sortt.out","w",stdout);
int i,n,f=1;
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%f",&a[i]);}
msort(0,n-1);
printf("%lld",ans);
return 0;
}
int cc=co();
int main(){;
}