생각해보면 간단하다.
중앙의 동전을 원하는 상태로 바꿔놓고 그 동전은 그대로 놔두고 좌우로 뻗어나가면서 다른 동전들도 똑같이 만들어 주면 된다.
마지막에는 끝 동전 하나만 뒤집을 수 있으므로 항상 모든 수들의 절댓값의 총합 (+,-)로 뒤집을 수 있다.
따라서 최대를 구하기 위해서는 입력되는 동전의 가치의 절댓값을 모두 더하면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <iostream> #include <algorithm> using namespace std; int main(void) { int n; long long sum = 0; cin >> n; for (int i = 0; i < 2 * n; i++) { int a; cin >> a; sum += abs(a); } cout << sum; } | cs |
'알고리즘 > PS' 카테고리의 다른 글
[백준 12841] 정보대 등산 (0) | 2018.05.23 |
---|---|
[백준 14656] 조교는 새디스트야!! (0) | 2018.05.21 |
[백준 14654] 스테판 쿼리 (0) | 2018.05.21 |
[백준 14653] 너의 이름은 (0) | 2018.05.21 |
[백준 14652] 나는 행복합니다~ (0) | 2018.05.21 |