분탕의 신 아이보리 3

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

요약
|p1-p2| <= K인 위치 p1, p2를 골라 A[1..p1-1]과 A[p2+1..N]의 부호를 바꿀 때 수열 합의 최댓값과 그 위치를 구한다.
난이도

보통10점 중 6점

유형
누적 합, 완전 탐색, 그리디, 구현
정답자
아직 제출이 없습니다

문제

나도리는 들판에서 뛰어놀며 가로 NN칸짜리 컨테이너를 가지고 놀고 있었다. 각 칸에는 가장 왼쪽에서 시작해 11번부터 NN번까지의 번호가 붙어 있고, ii번 칸 안에는 정수 A_iA\_i가 적혀 있다.

이를 아니꼽게 본 아이보리가 두 번의 빔을 날려 컨테이너에 분탕을 치려고 한다. 나도리는 아래와 같은 과정을 통해 자신의 몸을 던져 빔을 막아내려고 한다.

  1. 나도리가 p_1p\_1번 칸에 자리를 잡는다.
  2. 아이보리가 11번 칸 왼쪽에서 NN번 칸을 향해 첫째 빔을 발사한다. 빔은 나도리한테 막혀서 번호가 p_1p\_1보다 작은 모든 칸에 적힌 수에 −1-1을 곱한다.
  3. 나도리가 p_2p\_2번 칸에 자리를 잡는다.
  4. 아이보리가 NN번 칸 오른쪽에서 11번 칸을 향해 둘째 빔을 발사한다. 빔은 나도리한테 막혀서 번호가 p_2p\_2보다 큰 모든 칸에 적힌 수에 −1-1을 곱한다.

오히려 기회라 생각한 나도리는 적절한 위치에서 빔을 막아 분탕 후 수열의 원소의 합을 최대로 만들고자 한다. 하지만 나도리는 배가 고파 첫 번째 빔을 막은 자리에서 최대 KK칸까지만 움직일 수 있다.

나도리를 위해 분탕 후 수열의 합을 최대로 하는 방법을 알려주자!

입력

첫 번째 줄에 컨테이너 칸의 개수 NN, 나도리가 움직일 수 있는 거리를 나타내는 정수 KK가 공백으로 구분되어 주어진다. (1≤K≤N≤200,000)(1 \le K \le N \le 200\\,000)

두 번째 줄에 NN개의 칸에 적힌 정수 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 공백으로 구분되어 주어진다. (−10,000≤A_i≤10,000)(-10\\,000 \le A\_i \le 10\\,000)

출력

첫 번째 줄에 분탕 후 수열의 합의 최댓값을 출력한다.

두 번째 줄에 첫째 빔을 발사할 때 나도리의 위치한 칸의 번호 p_1p\_1, 둘째 빔을 발사할 때 나도리의 위치 p_2p\_2를 공백으로 구분하여 출력한다. 가능한 위치가 여러 가지라면 p_1p\_1이 가장 작은 것을, p_1p\_1이 같은 것 중에서는 p_2p\_2가 가장 작은 것을 출력한다. (1≤p_1,p_2≤N;∣p_1−p_2∣≤K)\left(1 \le p\_1, p\_2 \le N; \left\vert p\_1 - p\_2 \right\vert \le K \right)

예제1

  1. 예제 1

    입력
    5 2
    -3 5 9 -100 8
    
    예상 출력
    109
    2 3