解题思路:
"""
没有负号:
答案就是所有数的和
有负号:
只要正数和负数搭配答案就是所有的数绝对值的和
纯正数和纯负数分开考虑
"""
注意事项:
"""
0可以构造正负数
"""
#参考代码如下:
data=list(map(int,input().split()))
n,m=data[0],data[1]
list1=list(map(int,input().split()))
if m==0:# 都为加号
print(sum(list1))
else:
list2,list3=[],[] # 分别提取出正数,负数
for i in list1:
list2.append(i) if i>0 else list3.append(i) # 一个简单的三目运算符
# 正序排序
list2.sort()
list3.sort()
if 0 in list1 or len(list2)>0 and len(list3)>0 : # 正负数搭配(0可以构造)
print(sum(list2)-sum(list3))
elif len(list2)==0: # 全负数
print(list3[-1]-sum(list3[:-1])) # 保证最大数减去其他数的和
elif len(list3)==0: # 全正数
print(sum(list2[1:])-list2[0]) # 先产生负数 然后负数减去正数 最后再用一个正数去减负数->推导得到:除去最小的数的和-最小的数
0.0分
0 人评分