카드 게임 전략

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

보통6동적 계획법게임 이론아직 제출이 없습니다시간 제한5초메모리 제한1024 MB

문제

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

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

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

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

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

입력

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

둘째 줄에 정수 x1,,xnx_1, \dots, x_n이 주어진다. (0xi3000 \le x_i \le 300) xix_iii번 카드에 적힌 수다.

출력

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

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