You are given an integer array nums of length n.
Alice and Bob are playing a game. Alice chooses:
k such that k > 1.l and r such that 0 <= l <= r < n.Initially, both Alice's and Bob's scores are 0.
For each index i in the range [l, r] (inclusive):
nums[i] is divisible by k, Alice's score increases by nums[i].nums[i].The score difference is Alice's score minus Bob's score.
Alice wants to maximize the score difference. If there are multiple values of k that achieve the maximum score difference, she chooses the smallest such k.
Return the product of the maximum score difference and the chosen value of k. Since the result can be large, return it modulo 109 + 7.
Example 1:
Input: nums = [1,4,6,8]
Output: 36
Explanation:
k = 2, l = 1, and r = 3.nums[1..3] are divisible by 2, so Alice's score is 4 + 6 + 8 = 18, while Bob's score is 0.k that achieve this score difference, the smallest is 2.18 * 2 = 36.Example 2:
Input: nums = [2,1,2]
Output: 6
Explanation:
k = 2, l = 0, and r = 2.nums[0] and nums[2] are divisible by 2, so Alice's score is 2 + 2 = 4. The value nums[1] is not divisible by 2, so Bob's score is 1.4 - 1 = 3, which is the maximum possible. Among all values of k that achieve this score difference, the smallest is 2.3 * 2 = 6.Example 3:
Input: nums = [1]
Output: 1000000005
Explanation:
k > 1. The smallest possible choice is k = 2.nums[0] is not divisible by 2, Alice's score is 0, while Bob's score is 1.-1 * 2 = -2. Modulo 109 + 7, this equals 1000000005.Constraints:
1 <= nums.length <= 10001 <= nums[i] <= 106Loading editor...
[1,4,6,8]