- You are given a function f(X) = X
^{2}. You are also given K lists. The i_{th}list consists of N_{i }elements.

- You have to pick one element from each list so that the value from the equation below is maximized:

- S = (f(X
_{1}) + f(X_{2}) +....+ f(X_{k})) % M

- X
_{i}denotes the element picked from the i^{th}list. Find the maximized value S_{max}obtained.

- % denotes the modulo operator.

- Note that you need to take exactly one element from each list, not necessarily the largest element. You add the squares of the chosen elements and perform the modulo operation. The maximum value that you can obtain, will be the answer to the problem.

**Input Format:**

- The first line contains 2 space-separated integers K and M.

- The next K lines each contain an integer N
_{i}, denoting the number of elements in the i_{th}list, followed by N_{i}space-separated integers denoting the elements in the list.

**Constraints:**

**1 <= K <= 7**

**1 <= M <= 1000**

**1 <= N**_{i}<= 7

**1 <= Magnitude of elements in list <= 10**^{9}

**Output Format:**

Output a single integer denoting the value S

_{max}.**Sample Input:**

```
3 1000
2 5 4
3 7 8 9
5 5 7 8 9 10
```

**Sample Output:**

```
206
```

**Explanation:**

Picking 5 from the 1

^{st}list, 9 from the 2^{nd}list, and 10 from the 3^{rd}list gives the maximum S value equal to (5^{2}+ 9^{2}+ 10^{2}) % 1000 = 206.**Solution:**

```
from itertools import product
K, M = map(int,input().split())
N = (list(map(int, input().split()))[1:] for _ in range(K))
max_lst = []
for item in product(*N):
S = 0
for val in item:
S += val**2
S_max = S % M
max_lst.append(S_max)
print(max(max_lst))
```

**Disclaimer:**The problem statement is given by hackerrank.com but the solution is generated by the Geek4Tutorial admin. If there is any concern regarding this post or website, please contact us using the contact form. Thank you!

## No comments:

## Post a Comment