hiho week 277 register

Ended

Participants:49

Verdict:Accepted
Score:100 / 100
Submitted:2019-10-20 17:37:40

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<cstdio>
#include<cstring>
long long s;
int i,k,n,a[100001],b[100000];
void mer(int L,int R)
{
    if(L>=R)return;
    int mid=L+R>>1,i=L,j=mid+1;
    for(mer(L,mid),mer(mid+1,R),k=0;i<=mid&&j<=R;)
        b[k++]=a[i]>a[j]?s+=mid-i+1,a[j++]:a[i++];
    for(;i<=mid;b[k++]=a[i++]);
    for(;j<=R;b[k++]=a[j++]);
    memcpy(a+L,b,k<<2);
}
int main()
{
    scanf("%d",&n);
    for(i=1;i<=n;++i)
        scanf("%d",a+i);
    mer(1,n);
    printf("%lld",s);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX