题目传送门:https://codeforces.com/problemset/problem/1180/B
题目大意:
给定一串长度为\(n\)的序列\(A\),每次操作可以任选一个数\(i(1\leqslant i\leqslant n)\),使得\(A_i=-A_i-1\),求在进行若干次操作后,使\(\prod\limits_{i=1}^nA_i\)最大的序列\(A\)
如果\(A_i\geqslant0\),则有\(|-A_i-1|>|A_i|\),故我们可以将所有的非负整数\(A_i\)都改为\(-A_i-1\)
若\(n\)为奇数,则我们需要再将一个负整数\(A_i\)改为\(-A_i-1\)
记\(S=\prod\limits_{i=1}^n|A_i|\),而对负整数的操作,会使得\(|A_i|\)变为\(|A_i|-1\),若我们对\(A_k\)进行操作,则会使\(S=S-\frac{S}{|A_k|}=S(\frac{|A_k|-1}{|A_k|})\),故我们找到最大的\(|A_k|\)进行操作即可
/*program from Wolfycz*/
#include