만드는 중입니다

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

통계

시간 제한1.5초메모리 제한256 MB

요약
강의 학점의 합이 정확히 V가 되는 조합 중 강의 수가 가장 적은 것을 고르고, 그 안에서 평균, 중앙값, 최빈도, 최대-최소 차이의 최솟값을 각각 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 정렬, 구현
정답자
아직 제출이 없습니다

통계

졸업 학기에 들을 과목을 고르고 있다. 개설된 과목은 NN개이며, 1번부터 NN번까지 번호가 붙어 있다. ii번 과목은 viv_i 학점이고, 졸업하려면 최소 VV 학점이 필요하다. ACM ICPC 준비에 시간을 더 쓰고 싶어서, 학점 합이 정확히 VV가 되는 과목 부분집합을 고르려고 한다. 또한 캠퍼스를 걸어 다니는 시간을 줄이려고 과목 수가 가장 적은 부분집합을 원한다. 이런 부분집합을 좋은 시간표라고 부른다.

좋은 시간표 중에서 고를 때 통계값을 참고하려고 한다. 각 좋은 시간표를 과목별 학점의 리스트로 보고, 다음 값을 계산한다.

  • aa: 평균값
  • bb: 중앙값. 리스트 길이가 짝수이면 가운데 두 값 중 작은 값을 쓴다.
  • cc: 같은 값이 가장 많이 나타나는 횟수
  • dd: 최댓값과 최솟값의 차

aa, bb, cc, dd 각각에 대해 모든 좋은 시간표에 걸친 최솟값을 구하시오.

입력

첫 번째 줄에 과목 수 NN과 졸업에 필요한 학점 VV가 주어진다 (1≤N,V≤50001 \leq N, V \leq 5000).

두 번째 줄에는 각 과목의 학점 v1,v2,…,vNv_1, v_2, \ldots, v_N이 주어진다 (1≤vi≤V1 \leq v_i \leq V).

출력

모든 좋은 시간표에 대한 aa, bb, cc, dd의 최솟값을 이 순서대로 공백으로 구분하여 실수 4개로 출력한다. 절대 오차 또는 상대 오차는 10−610^{-6} 미만이어야 한다. 좋은 시간표가 없으면 정수 −1-1 하나만 출력한다.

예제2

  1. 예제 1

    입력
    6 15
    6 1 13 5 4 1
    
    예상 출력
    5.000000000 1 1 2
    
  2. 예제 2

    입력
    3 7
    3 1 2
    
    예상 출력
    -1