题库 信息学奥赛题库 题目列表 #include <iostream>using namespace std;int n...
填空题

#include <iostream>

using namespace std;

int n, s, a[100005], t[100005], i;

void mergesort(int l, int r)

{

    if (l == r)

        return;

    int mid = (l + r) / 2;

    int p = l;

    int i = l;

    int j = mid + 1;

    mergesort(l, mid);

    mergesort(mid + 1, r);

    while (i <= mid && j <= r)

    {

        if (a[j] < a[i])

        {

            s += mid - i + 1;

            t[p] = a[j];

            p++;

            j++;

        }

        else

        {

            t[p] = a[i];

            p++;

            i++;

        }

    }

    while (i <= mid)

    {

        t[p] = a[i];

        p++;

        i++;

    }

    while (j <= r)

    {

        t[p] = a[j];

        p++;

        j++;

    }

    for (i = l; i <= r; i++)

        a[i] = t[i];

}

int main()

{

    cin >> n;

    for (i = 1; i <= n; i++)

        cin >> a[i];

    mergesort(1, n);

    cout << s << endl;

    return 0;

}

输入:6

2 6 3 4 5 1

输出:_________

题目信息
2017年 初赛
-
正确率
0
评论
69
点击