만드는 중입니다

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

매트릭스 최적화

면접 대비

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

요약
노드 하나를 골라 양쪽으로 k개까지 작용을 퍼뜨리는 문제입니다. 작용이 닿은 노드는 0이 되고, 선택한 노드는 (1+d)배가 되며, 전체 중요도의 최댓값을 구합니다.
난이도

쉬움10점 중 3점

유형
누적 합, 구현
정답자
아직 제출이 없습니다

문제

매트릭스를 지탱하는 인공지능은 복잡한 시스템이라, 아키텍트가 이를 최적화해 보기로 했다.

이 시스템은 nn개의 노드가 순서대로 연결된 형태로 나타낼 수 있다. 각 노드에는 특별한 특성 wiw_i, 즉 연산 중요도가 있다.

아키텍트는 노드 하나를 골라 그 작용을 양쪽 방향으로 각각 kk개의 인접 노드까지 퍼뜨린다. 어느 한쪽 방향의 노드가 kk개보다 적으면, 있는 만큼만 퍼뜨린다. 작용이 퍼진 노드의 총수를 dd라 하자. 그러면 선택한 노드의 연산 중요도는 (1+d)⋅wi(1 + d) \cdot w_i가 되고, 작용이 퍼진 노드들의 연산 중요도는 0이 된다.

이 작업을 수행해 얻을 수 있는 시스템의 연산 중요도 합의 최댓값을 구하라.

입력

첫 줄에 두 정수 nn과 kk가 주어진다. nn은 연산 노드의 개수이고, kk는 선택한 노드의 작용이 한쪽 방향으로 퍼지는 노드 수이다. (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5; 0≤k≤2⋅1050 \le k \le 2 \cdot 10^5)

둘째 줄에는 공백으로 구분된 양의 정수 w1,w2,…,wnw_1, w_2, \dots, w_n이 주어진다. 각 값은 노드의 연산 중요도이다. (1≤wi≤5⋅1051 \le w_i \le 5 \cdot 10^5)

출력

시스템의 연산 중요도 합의 최댓값을 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    3 1
    1 3 2
    
    예상 출력
    9
    
  2. 예제 2

    입력
    5 1
    1 5 3 2 4
    
    예상 출력
    21