//I. Sort it

//I. Sort it

I. Sort it

时间限制:2s

空间限制:256MB

本题分值:400

题目描述

冒泡排序是一种经典的排序算法,冒泡排序(升序排列)的C++代码如下:

template < typename T > void BubbleSort(T a[], int n)
{
    for (int i = 0; i < n - 1; i++)
        for (int j = 0; j < n - 1 - i; j++) {
            if (a[j] > a[j + 1])
                swap(a[j], a[j + 1]);
        }
}

现有长度为 \(n\) 的整型数组 \(a\),请问,对于\(x=1,2,...,n\),如果调用函数

BubbleSort(a, x);

函数过程中将发生几次交换(swap)?(各个询问是独立的)

输入格式

第一行一个正整数 \(n\),表示数组长度。

第二行 \(n\) 个正整数\(a_i\),表示这个数组。

输出格式

对于每一个\(x\),输出对应的答案。

样例输入1


样例输出1


样例1解释

数据范围及限制

\(1\le a_i\le 5*10^5\)

测试点编号 n 测试点分值
1~2 \(1\le n\le 100\) 每个测试点40分
3~4 \(1\le n\le 1000\) 每个测试点60分
5~6 \(1\le n\le 5*10^5\) 每个测试点100分

信息

ID
1312
难度
9
分类
(无)
标签
(无)
递交数
2
已通过
1
通过率
50%
上传者