만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

합의 곱의 절댓값의 최댓값

시간 제한1초메모리 제한256 MB

요약
정수 배열에서 서로 겹치지 않는 구간을 최대 K개 고를 때, 구간 합들의 곱의 절댓값이 가장 큰 값을 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 누적 합, 수학
정답자
아직 제출이 없습니다

문제

수학에는 정말 아름다운 기호가 많다. 수학나라의 수학왕은 특히 합, 곱, 절댓값을 좋아한다. 수학왕은 당신에게 다음의 문제를 냈다.

길이 NN인 정수로 이루어진 수열 AA가 주어진다. 그 뒤, 서로 겹치지 않게 KK개 이하의 구간을 잡는다. 이때, 각 구간의 길이는 11 이상이어야 한다.

구간의 개수를 X(≥1)X(\ge 1)개 라고 하고, ii번째 구간의 원소의 합을 Si(i=1,2,⋯ ,X)S_i (i = 1, 2, \cdots, X)라 하자. 이때 ∣S1S2⋯SX∣\left\vert S_1 S_2 \cdots S_X \right\vert의 최댓값은 무엇인가?

수학왕에게 인정받기 위해 문제를 해결하자!

입력

첫 번째 줄에 N,KN, K가 주어진다.

이후 NN줄에 걸쳐 i+1i + 1번째 줄에 AiA_i가 주어진다.

출력

첫 번째 줄에 KK개 이하의 구간을 잡았을 때의 최댓값을 출력한다.

제한

  • 1≤N≤1000001 \leq N \leq 100000
  • 1≤K≤61 \leq K \leq 6
  • −109≤Ai≤109-10^9 \leq A_i \leq 10^9
  • 답은 101810^{18}을 넘지 않는다.

예제2

  1. 예제 1

    입력
    6 2
    6
    -5
    5
    5
    5
    5
    
    예상 출력
    120
    
  2. 예제 2

    입력
    5 2
    5
    5
    5
    5
    5
    
    예상 출력
    150