Challenge: Tell the Average
Subdomeniu: Algebra (algebra)
Scor cont: 25.0 / 25
Submission status: Accepted
Submission score: 1.0
Submission ID: 464724125
Limbaj: python3
Link challenge: https://www.hackerrank.com/challenges/tell-the-average/problem
Cerinta
James is very naive in Mathematics, He always makes new things out of a given list of integers. Today he is given a list $L$, so he creates a value $S$ out of it.
$S$ from a given list can be calculated as follows.
value_of_S(list L)
{
while ((number of elements in L) > 1)
{
a = L[0]
b = L[1]
delete L[1]
L[0] = a+b+ab
}
return L[0] % 1000000007
}
James has an ample amount of time, so he calculates the values of $S$ for all the permutations of the given list $L$ and finds their average value. Then he asks you to report that value.
**Input Format**
The first line contains an integer $N$, the number of integers in the list.
The second line contains $N$ integral values, $L[0], \ldots, L[N-1]$, separated by single spaces.
**Output Format**
Print the [floor](http://en.wikipedia.org/wiki/Floor_and_ceiling_functions) of the average value.
**Constraints**
$2 \le N \le 10^4$
$2 \le L[i] \le 10^6$
**Sample Input**
2
2 3
**Sample Output**
11
**Explanation**
The $S$ value corresponding to the two permutations of the given list is $11$.
Cod sursa
from functools import reduce
MOD = 1_000_000_007
def _value_of_S_reduce(x:int,y:int)->int:
return (x+y+x*y) % MOD
def value_of_S(l:list)->int:
return reduce(_value_of_S_reduce,l)
if __name__=='__main__':
_ = input()
print(value_of_S(list(map(int,input().split()))))
HackerRank Algebra – Tell the Average
