きろく

特筆すべき記録のまとめ

AtCoder Beginner Contest 125:D - Flipping Signs

問題

atcoder.jp

解法

数列 A のある隣り合う 2 つの要素の一方が負の数でもう一方が正の数であるとき,両方に -1 をかけるという操作はマイナスの符号を負の数のものから正の数のものへ移動させることと同値である.

これを踏まえると,A に負の数が奇数個ある場合,最終的に出来る数列 B での負の数を 1 つまで減らせ,偶数個ある場合は 0 こに出来る.よって,後者の場合の答えは sum(|A_i|) となる.前者の場合は,負の数とする 1 つの要素は絶対値が一番小さいものがよいので,答えは sum(|A_i|) - min(|A_i|) となる.O(N).

解答

atcoder.jp

f:id:babcs2035:20190427214940p:plain