解题思路:
"""
没有负号:
答案就是所有数的和
有负号:
只要正数和负数搭配答案就是所有的数绝对值的和
纯正数和纯负数分开考虑
"""
注意事项:
"""
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 人评分
字符串对比 (C语言代码)浏览:1413 |
打水问题 (C语言代码)浏览:1072 |
众数问题 (C语言代码)浏览:830 |
WU-C语言程序设计教程(第三版)课后习题11.11 (C++代码)(想学链表的可以看看)浏览:1357 |
【计算直线的交点数】 (C语言代码)浏览:1453 |
关于C语言变量位置的问题浏览:273 |
1011题解浏览:765 |
K-进制数 (C语言描述,蓝桥杯)浏览:925 |
【亲和数】 (C语言代码)浏览:600 |
蚂蚁感冒 (C语言代码)浏览:775 |