解题思路:
注意事项:
参考代码:
n,k=map(int,input().split())
a=[0]+list(map(int,input().split()))
st=[[0 for _ in range(3)] for _ in range(k)]
s=0
for i in range(len(a)):
if a[i]>st[a[i]%k][0]:
st[a[i]%k][2]=st[a[i]%k][1]
st[a[i]%k][1]=st[a[i]%k][0]
st[a[i]%k][0]=a[i]
elif a[i]>st[a[i]%k][1]:
st[a[i]%k][2]=st[a[i]%k][1]
st[a[i]%k][1]=a[i]
elif a[i]>st[a[i]%k][2]:
st[a[i]%k][2]=a[i]
for i in range(k):#分类讨论
for j in range(i,k):
t=(k-(i+j)%k)%k#确定两个余数,第三个余数也能确定就少一次循环
if i==j:
x=st[i][0]
y=st[i][1]
if t==i:
z=st[i][2]
else:
z=st[t][0]
else:
x=st[i][0]
y=st[j][0]
if t==i:
z=st[i][1]
elif t==j:
z=st[j][1]
else:
z=st[t][0]
s=max(s,x+y+z)
print(s)
0.0分
0 人评分
矩形面积交 (Java代码)浏览:1281 |
【绝对值排序】 (C语言代码)浏览:832 |
A+B for Input-Output Practice (VII) (C++代码)浏览:643 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:949 |
打水问题 (C语言代码)浏览:1148 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:490 |
C语言训练-亲密数 (C语言代码)浏览:697 |
C语言训练-8除不尽的数 (C语言代码)浏览:1469 |
矩阵转置 (C语言代码)浏览:855 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:669 |