CodeVS上90分
https://www.luogu.org/record/show?rid=4325948
![](https://cdn.luogu.com.cn/upload/pic/10462.png)
by floatery @ 2017-11-06 15:54:55
@ floatery
可能是你的void mergesort(int l,int r)
里的内容太多,归并排序有简洁的写法,
看看我的
void gb(int x,int y)
{
if(x==y)return;
gb(x,(x+y)/2),gb((x+y)/2+1,y);
int i=x,j=(x+y)/2+1;
for(int k=x;k<=y;k++)
if(j>y||(i<=(x+y)/2&&a[i] <a[j]))g[k]=a[i++];
else g[k]=a[j++],ans=(ans+(x+y)/2- i+1)%p;
for(int k=x;k<=y;k++)
a[k]=g[k];
}
by HHCY @ 2018-03-08 22:58:23
@[floatery](/space/show?uid=20854)
by HHCY @ 2018-03-08 22:58:36
@[HHCY](/space/show?uid=50704) @[floatery](/space/show?uid=20854)
```cpp
void gb(int x,int y)
{
if(x==y)return; gb(x,(x+y)/2),gb((x+y)/2+1,y);
int i=x,j=(x+y)/2+1;
for(int k=x;k<=y;k++)
if(j>y||(i<=(x+y)/2&&a[i] <a[j]))g[k]=a[i++]; else g[k]=a[j++],ans=(ans+(x+y)/2- i+1)%p; for(int k=x;k<=y;k++)
a[k]=g[k];
}
```
帮你用一下Markdown
by Happynewyear @ 2018-08-24 12:05:45
```cpp
```
by HHCY @ 2018-08-24 12:10:32