Inversion Conv

View as PDF

Submit solution

Points: 10
Time limit: 1.0s
Memory limit: 512M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C++, Pascal, pypy3, Python

An array has n integers x_1, x_2, \dots, x_n, and each of them is randomly chosen independently and uniformly from the range [1, r_i].An inversion is a pair of indices (a, b) such that a < b and x_a > x_b.

What is the expected number of inversions in the array?

Input:

  • The first input line contains an integer n: the size of the array.
  • The second line contains n integers r_1, r_2, \dots, r_n: the range of possible values for each array position.

Output:

  • Print the expected number of inversions, rounded to six decimal places (using round-half-to-even).

Constraints

  • 1 \leq n \leq 100
  • 1 \leq r_i \leq 100

Example
Sample Input:

 3
 5 2 7

Output:

1.057143

Comments

There are no comments at the moment.