연습문제
효도 음식
- 난이도
- Lv. 3
- 제출
- 634 명
- 참가자
- 211 명
- 정답률
- 34.44 %
- 지원 언어
-
CC++JavaPythonJavaScript
로그인 후 문제풀이가 가능합니다.
언어별 시간/메모리
언어 | 시간 | 메모리 |
---|---|---|
C | 1초 | 1024MB |
Java | 2초 | 1024MB |
Python | 1초 | 1024MB |
C++ | 1초 | 1024MB |
JavaScript | 1초 | 1024MB |
남우는 어버이날을 맞이하여 요리를 진행하려고 합니다. 요리는 2개를 만들려고 하고, 이를 위해 n 개의 재료를 준비했습니다.
재료를 1번부터 순서대로 n 번까지 나열했다 했을 때, 요리를 만들기 위해서는 다음 두 조건을 만족해야 합니다.
1. 요리는 연속한 재료들로만 만들 수 있습니다. 이때 최소 1개 이상의 재료를 선택해야만 합니다.
2. 서로 다른 요리에 사용되는 재료끼리 겹쳐서도, 그리고 인접해서도 안됩니다.
예로 [재료1, 재료2, 재료3, 재료4, 재료5] 이렇게 5개의 재료가 순서대로 주어졌을 때, ([재료2, 재료3]), ([재료4, 재료5]) 이렇게 재료를 선택하여 두 요리를 만들게 된다면 인접한 재료인 재료3, 재료4는 서로 다른 요리에 사용되므로 불가능한 선택지가 됩니다.
각 재료마다 부모님의 선호도가 정해져 있으며, 만족도는 두 요리에 쓰인 재료의 선호도의 총 합으로 정해집니다. 조건을 만족하며 두 요리를 통해 얻을 수 있는 최대 만족도를 구하는 프로그램을 작성해보세요.
본 문제의 저작권은 (주)브랜치앤바운드에 있으며, 저작자의 동의 없이 무단 전재/복제/배포를 금지합니다.
제약조건
- 3 ≤ n ≤ 100,000
- -1,000 ≤ 선호도 ≤ 1,000
입력형식
첫 번째 줄에 n 이 주어집니다.
두 번째 줄에는 부모님의 선호도를 나타내는 n 개의 숫자가 공백을 사이에 두고 주어집니다.
출력형식
첫 번째 줄에 두 요리를 준비하여 얻을 수 있는 최대 만족도를 출력합니다.
입력예제1
6 4 -6 1 2 -2 3
출력예제1
8
[4]
, [1, 2, -2, 3]
이렇게 2개의 재료로 나눠 요리를 진행하면 만족도를 8만큼 얻을 수 있습니다.
입력예제2
3 -10 25 -10
출력예제2
-20
[-10]
, [-10]
이렇게 나눠야만 서로 다른 요리에 쓰인 재료끼리 인접하지 않고 요리를 2개 만들 수 있게 되므로 만족도는 -20이 됩니다.