CF749E.Inversions After Shuffle

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a permutation of integers from 11 to nn . Exactly once you apply the following operation to this permutation: pick a random segment and shuffle its elements. Formally:

  1. Pick a random segment (continuous subsequence) from ll to rr . All segments are equiprobable.
  2. Let k=rl+1k=r-l+1 , i.e. the length of the chosen segment. Pick a random permutation of integers from 11 to kk , p1,p2,...,pkp_{1},p_{2},...,p_{k} . All k!k! permutation are equiprobable.
  3. This permutation is applied to elements of the chosen segment, i.e. permutation a1,a2,...,al1,al,al+1,...,ar1,ar,ar+1,...,ana_{1},a_{2},...,a_{l-1},a_{l},a_{l+1},...,a_{r-1},a_{r},a_{r+1},...,a_{n} is transformed to a1,a2,...,al1,al1+p1,al1+p2,...,al1+pk1,al1+pk,ar+1,...,ana_{1},a_{2},...,a_{l-1},a_{l-1+p1},a_{l-1+p2},...,a_{l-1+pk-1},a_{l-1+pk},a_{r+1},...,a_{n} .

Inversion if a pair of elements (not necessary neighbouring) with the wrong relative order. In other words, the number of inversion is equal to the number of pairs (i,j)(i,j) such that i<j and a_{i}>a_{j} . Find the expected number of inversions after we apply exactly one operation mentioned above.

输入格式

The first line contains a single integer nn ( 1<=n<=1000001<=n<=100000 ) — the length of the permutation.

The second line contains nn distinct integers from 11 to nn — elements of the permutation.

输出格式

Print one real value — the expected number of inversions. Your answer will be considered correct if its absolute or relative error does not exceed 10910^{-9} .

Namely: let's assume that your answer is aa , and the answer of the jury is bb . The checker program will consider your answer correct, if .

输入输出样例

  • 输入#1

    3
    2 3 1
    

    输出#1

    1.916666666666666666666666666667
    
首页