만드는 중입니다

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

카드 게임 전략

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

요약
Alice가 구간 [a, b]에서 t를 고르면 Bob은 합이 t에 가장 가까운 카드 k장을 고르고 Alice는 그 차이를 최대화합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 게임 이론
정답자
아직 제출이 없습니다

문제

앨리스와 밥이 카드 게임을 한다. 카드는 nn장이고 ii번 카드에는 정수 xix_i가 적혀 있다. 게임은 다음 순서로 진행된다.

  1. 앨리스가 aa 이상 bb 이하인 정수를 하나 고른다. 이 정수를 tt라 하고, 앨리스는 tt의 값을 밥에게 알려 준다.
  2. 밥이 nn장 중에서 kk장을 고른다. 밥이 고른 kk장에 적힌 수의 합을 uu라 한다.

앨리스는 ∣t−u∣|t - u|를 최대한 크게 만들려 하고, 밥은 최대한 작게 만들려 한다.

게임을 시작하기 전에 두 사람은 nn, kk, aa, bb와 각 카드에 적힌 수를 모두 알고 있다. 두 사람 모두 최적으로 행동한다. 특히 앨리스는 자신이 알려 준 tt에 대해 밥이 ∣t−u∣|t - u|를 반드시 최소로 만든다는 사실을 알고 tt를 고른다. 똑같이 좋은 tt가 여러 개면 앨리스는 그중 가장 작은 값을 고른다.

앨리스가 고르는 tt와, 그 tt에 대해 밥이 고르는 카드 kk장을 구하라.

입력

첫째 줄에 정수 nn, kk, aa, bb가 주어진다. (1≤k≤n≤6001 \le k \le n \le 600, 0≤a≤b≤1800000 \le a \le b \le 180000)

둘째 줄에 정수 x1,…,xnx_1, \dots, x_n이 주어진다. (0≤xi≤3000 \le x_i \le 300) xix_i는 ii번 카드에 적힌 수다.

출력

첫째 줄에 앨리스가 고르는 tt를 출력한다.

둘째 줄에 밥이 고르는 카드의 번호 kk개를 증가하는 순서로 출력한다. ∣t−u∣|t - u|를 최소로 만드는 카드 조합이 여러 개면, 번호를 증가하는 순서로 나열한 수열이 사전순으로 가장 앞서는 조합을 출력한다.

예제2

  1. 예제 1

    입력
    4 2 58 100
    10 10 50 80
    
    예상 출력
    75
    1 3
    
  2. 예제 2

    입력
    8 3 1300 1800
    2 0 1 5 0 4 1 9
    
    예상 출력
    1800
    4 6 8