Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int a[100000], b[100000];
- int n;
- long long cnt;
- void mergesort(int a[], int p, int q)
- {
- if(q-p < 2)
- return;
- int m = (p+q+1)/2;
- mergesort(a, p, m);
- mergesort(a, m, q);
- for(int i=p; i<q; i++)
- b[i] = a[i];
- int i = p, j = m, k = p;
- while(i<m && j<q)
- {
- if(b[i]<b[j])
- {
- a[k]=b[i];
- i++;
- k++;
- }
- else
- {
- cnt=cnt+m-i;
- a[k]=b[j];
- j++;
- k++;
- }
- }
- while(i<m)
- {
- a[k]=b[i];
- i++;
- k++;
- }
- while(j<q)
- {
- a[k]=b[j];
- j++;
- k++;
- }
- }
- int main()
- {
- cin>>n;
- for(int i=0; i<n; i++)
- cin>>a[i];
- cnt = 0;
- mergesort(a, 0, n);
- cout<<cnt;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement