month


私信TA

用户名:lanqiaobeiTest

访问量:2356

签 名:

等  级
排  名 11174
经  验 1044
参赛次数 1
文章发表 7
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:
由于余数1000 只有1000个 所以我们可以创建余数列表 遍历前两个余数 控制第三个余数 输出最大值
注意事项:

参考代码:

n, k = map(int,input().strip().split())
r = [[0 for _ in range(3)] for i in range(k)]
inputList = [int(temp) for temp in input().strip().split()]
# inputList = [temp for temp in range(100000, 0, -1)]
for i in range(n):
    index = inputList[i] % k
    if inputList[i] > r[index][0]:
        r[index].insert(0, inputList[i])
        r[index].pop()
    elif inputList[i] > r[index][1]:
        r[index].insert(1, inputList[i]) 
        r[index].pop()
    elif inputList[i] > r[index][0]:
        r[index].insert(2, inputList[i])
        r[index].pop()
maxValue = 0
for i in range(k):
    for j in range(i, k):
        temp = (k - i + k - j) % k
        v1 = r[i][0]
        if i == j:
            v2 = r[j][1]
            if i == temp:
                v3 = r[i][2]
            else:
                v3 = r[temp][0]
        else:
            v2 = r[j][0]
            if i == temp:
                v3 = r[i][1]
            elif j == temp:
                v3 = r[j][1]
            else:
                v3 = r[temp][0]
        if v1 + v2 + v3 > maxValue:
            maxValue = v1 + v2 + v3
print(maxValue)


 

0.0分

2 人评分

  评论区

  • «
  • »