아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

수 고르기

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

요약
원 위에 놓인 N개의 수 중에서 서로 이웃하지 않게 정확히 K개를 골라 합이 최대가 되도록 한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 그리디, 힙, 연결 리스트
정답자
아직 제출이 없습니다

문제

kcm1700이 ntopia에게 다음 과제를 냈다. 원형으로 놓인 NN개의 수에서 서로 이웃하지 않게 KK개를 고르고, 고른 KK개의 합을 최대로 만들어라. 이웃하게 골랐다는 것은 고른 수 중에 원 위에서 연속으로 놓인 두 수가 있다는 뜻이다.

수가 원을 이루므로 첫 번째 수와 마지막 수도 서로 이웃한다. 이웃하지 않게 KK개를 골랐을 때의 최대 합을 구하는 프로그램을 작성하여라.

입력

첫째 줄에 양의 정수 NN(3≤N≤1063 \le N \le 10^6)과 정수 KK(1≤K≤N/21 \le K \le N/2)가 공백을 사이에 두고 주어진다.

둘째 줄에는 원을 이루는 NN개의 자연수가 시계 방향 순서대로 공백을 사이에 두고 주어진다. 각 수는 2312^{31}보다 작다.

출력

첫째 줄에 최대 합을 출력한다. 답은 2312^{31}보다 작다.

예제5

  1. 예제 1

    입력
    10 4
    2 1 3 1 2 1 3 1 3 1
    
    예상 출력
    11
    
  2. 예제 2

    입력
    3 1
    5 9 7
    
    예상 출력
    9
    
  3. 예제 3

    입력
    4 2
    1 100 1 100
    
    예상 출력
    200
    
  4. 예제 4

    입력
    6 2
    5 6 5 1 1 1
    
    예상 출력
    10
    
  5. 예제 5

    입력
    6 2
    10 1 1 1 1 10
    
    예상 출력
    11