【問題】https://atcoder.jp/contests/abc125/tasks/abc125_d
【方針】マイナスの数が奇数ならば\(1\)個だけマイナスになり、偶数ならばすべてプラスにできる。
【提出コード】
#atcoder template
def main():
import sys
input = sys.stdin.readline
#文字列入力の時は上記はerrorとなる。
#ここにコード
#input
n = int(input())
a = list(map(int, input().split()))
#output
#マイナスの数が偶数なら、全てプラスにできる
#マイナスの数が奇数ならば、1個だけマイナスになる。
answer = 0
pm_count = sum([i < 0 for i in a])
for i in range(n):
answer += abs(a[i])
if pm_count % 2:
print(answer-2*min([abs(i) for i in a]))
else:
print(answer)
#N = 1のときなどcorner caseを確認!
if __name__ == "__main__":
main()
【提出結果】https://atcoder.jp/contests/abc125/submissions/26530747
文字でリストを受け取り、マイナスを削除して渡すのが早いようだ。
コメント