解题思路:
注意事项:
参考代码:
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 人评分
小明A+B (C语言代码)浏览:1247 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:628 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:520 |
简单的a+b (C语言代码)浏览:524 |
字符串比较 (C语言代码)浏览:680 |
计算质因子 (C语言代码)浏览:697 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:757 |
简单的a+b (C语言代码)浏览:504 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:991 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:682 |