There are N number of boxes arranged in a single queue. Each box has an integer I written on it. From the given queue, the participant has to select two contiguous subsequences A and B of the same size. The selected subsequences should be such that the summation of the product of the boxes should be maximum. The product is not calculated normally though. To make the game interesting, the first box of subsequence A is to be multiplied by the last box of subsequence B. The second box of subsequence A is to be multiplied by the second last box of subsequence B and so on. All the products thus obtained are then added together.
If the participant is able to find the correct such maximum summation, he/she will win the game and will be awarded the food voucher of the same value.
Note: The subsequences A and B should be disjoint.
Example:
Number of boxes, N = 8
The order of the boxes is provided below:
Subsequence A
Subsequence B
The product of the subsequences will be calculated as below:
P1 = 9 * 8 = 72
P2 = 2 * 7 = 14
P3 = 3 * 6 = 18
Summation, S = P1 + P2 + P3 = 72 + 14 + 18 = 104
This is the maximum summation possible as per the requirement for the given N boxes.
Tamanna is also in the fest and wants to play this game. She needs help in winning the game and is asking for your help. Can you help her in winning the food vouchers?
Input Format
The first line of input consists of the number of boxes, N.
The second line of input consists of N space-separated integers.
Constraints
1< N <=3000
-106 <= I <=106
Output
Format
Print the maximum summation of the product of the boxes in a
separate line.
Sample TestCase 1
Input
8
1 9 2 3 0 6 7 8
Output
104
def main():
n=int(input())
r=input().split()
arr=[int(i) for i in r]
r=range(0,n)
max=-1000000
for i in r:
j=n-1
sum=0
while i<j:
sum+=arr[i]*arr[j]
j-=1
i+=1
if sum>max:
max=sum
for i in r:
j=0
sum=0
while n-i-1>j:
sum+=arr[n-i-1]*arr[j]
j+=1
i+=1
if sum>max:
max=sum
print(max)
main()
def main():
n=int(input())
r=input().split()
arr=[int(i) for i in r]
r=range(0,n)
max=-1000000
for i in r:
j=n-1
sum=0
while i<j:
sum+=arr[i]*arr[j]
j-=1
i+=1
if sum>max:
max=sum
for i in r:
j=0
sum=0
while n-i-1>j:
sum+=arr[n-i-1]*arr[j]
j+=1
i+=1
if sum>max:
max=sum
print(max)
main()
No comments:
Post a Comment