1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "teatr.h"
#include "message.h"
#include <bits/stdc++.h>
using namespace std;
int A[28000000];
int B[28000000];
int n,a,L,P,S;
long long wynik;
void MergeSort(int p, int q)
{
    if (p==q)
    {
        return;
    }
    int s = (p + q) / 2;
    MergeSort(p, s);
    MergeSort(s+1, q);

    int i = p;
    int j = s+1;
    for (int k = p; k <= q; k++)
        if (j>q || ( i<=s && A[i]<= A[j]) )
        {
           B[k] = A[i];
           i++;
        } else
        {
           B[k] = A[j];
           wynik+=s-i+1;
           j++;
        }
     for(int k = p ; k <= q; k++)
     {
          A[k]=B[k];
          A[k]=B[k];
     }
}
int main()
{
int n=GetN();
int numer=MyNodeId();
if(numer>0)
{
return 0;
}
for(int i=0;i<n;i++)
{
     A[i]=GetElement(i);
}
MergeSort(0,n-1);
cout<<wynik<<endl;
return 0;
}