[问题] hackerrank - Maximize It

楼主: newbrain (没有真心就别谈感情)   2021-09-23 23:23:51
https://www.hackerrank.com/challenges/maximize-it/problem
第一行输入:数列数 某整数n
第二行之后为依序输入数列内容
每个数列取一个元素,再把每个元素平方和之后去余数n=Smax (mod n或%n)
找到Smax为多少就是答案,就是六个数列各取一元素平方和再余数n的最大值!
Sample Input
3 1000
2 5 4
3 7 8 9
5 5 7 8 9 10
Sample Output
206
我的解答如下:
from itertools import product
a=input().split()
pr=[]
for i in range(0,int(a[0])):
b=input().split()
pr.append(b)
prsum = product(*pr)
maxi=0
for items in prsum:
subsum = 0
for item2s in items:
if int(item2s) >int(a[1]):
subsum = subsum + (int(item2s)%int(a[1]))*(int(item2s)%int(a[1]))
else:
subsum = subsum + int(item2s)*int(item2s)
subsum = subsum % int(a[1])
if subsum > maxi:
maxi = subsum
print(maxi)
17个测试过了13个,四个失败
我解锁了一个测试内容如下:
Input (stdin)
6 767
2 488512261 423332742
2 625040505 443232774
1 4553600
4 92134264 617699202 124100179 337650738
2 778493847 932097163
5 489894997 496724555 693361712 935903331 518538304
Expected Output
763
但我的程式码给的是766
我找到一组 组合
488512261
2
1
337650738
2
518538304
这六个数字平方和之后余数767明明就是766
不晓得有没有人可以解我的惑 ~'~
感谢
作者: s0914714 (YA)   2021-09-24 00:30:00
你的答案看起来没错啊看了一下题目 应该是你input data处理有误 3~8行的开头是该行的元素个数 处理时要剔除
楼主: newbrain (没有真心就别谈感情)   2021-09-24 07:52:00
太感谢大大了!

Links booklink

Contact Us: admin [ a t ] ucptt.com