만드는 중입니다

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

가중 윈도우 합

면접 대비

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

요약
길이 n인 수열에서 크기 k인 모든 구간의 가중합(1a1 + 2a2 + ...)을 구하고, 합이 작은 순서대로 시작 위치와 가중합을 출력합니다.
난이도

보통10점 중 4점

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

문제

길이가 n인 수열이 주어진다. 윈도우는 수열에서 연속된 부분 수열이다. 예를 들어 수열 [3,6,2,3,5,4][3, 6, 2, 3, 5, 4]에는 크기가 3인 윈도우가 [3,6,2][3, 6, 2], [6,2,3][6, 2, 3], [2,3,5][2, 3, 5], [3,5,4][3, 5, 4]의 네 개 있다. 크기 k인 윈도우 i는 i번째 값에서 시작하여 연속된 k개의 값을 포함한다. 따라서 마지막 값은 (i+k-1)번째 값이다.

값이 a1,a2,…,aka_1, a_2, \ldots, a_k인 윈도우의 가중 윈도우 합은 다음과 같이 정의한다.

1a1+2a2+3a3+⋯+kak1a_1 + 2a_2 + 3a_3 + \cdots + ka_k

위의 네 윈도우의 가중 윈도우 합은 다음과 같다.

  • [3,6,2][3, 6, 2]는 1×3+2×6+3×2=211 \times 3 + 2 \times 6 + 3 \times 2 = 21 (순위 2)
  • [6,2,3][6, 2, 3]은 1×6+2×2+3×3=191 \times 6 + 2 \times 2 + 3 \times 3 = 19 (순위 1)
  • [2,3,5][2, 3, 5]는 1×2+2×3+3×5=231 \times 2 + 2 \times 3 + 3 \times 5 = 23 (순위 3)
  • [3,5,4][3, 5, 4]는 1×3+2×5+3×4=251 \times 3 + 2 \times 5 + 3 \times 4 = 25 (순위 4)

주어진 크기의 윈도우를 가중 윈도우 합이 작은 순서로 정렬한다. 합이 같으면 시작 인덱스가 작은 윈도우를 먼저 놓는다.

정수 수열과 윈도우 크기가 주어졌을 때, 그 크기의 모든 윈도우를 가중 윈도우 합 기준으로 정렬하라.

입력

첫 줄에 두 정수 n (1 ≤ n ≤ 2 × 10^5)과 k (1 ≤ k ≤ n)이 주어진다. 각각 수열의 길이와 윈도우의 크기이다. 다음 n개의 줄에는 수열의 값이 순서대로 한 줄에 하나씩 주어진다. 각 값은 1 이상 10^8 이하이다.

출력

정렬된 윈도우 목록을 한 줄에 윈도우 하나씩 출력한다. 각 윈도우에 대해 시작 인덱스와 가중 윈도우 합을 차례로 출력한다.

예제2

  1. 예제 1

    입력
    6 3
    3
    6
    2
    3
    5
    4
    
    예상 출력
    2 19
    1 21
    3 23
    4 25
    
  2. 예제 2

    입력
    7 3
    2
    3
    2
    3
    2
    4
    1
    
    예상 출력
    5 13
    1 14
    3 14
    2 16
    4 19