만드는 중입니다

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

파티 메들리

면접 대비

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

요약
서로 다른 학생 세 명으로 이루어진 팀 중 최대 레이팅과 최소 레이팅의 차가 M 이하인 팀의 수를 세고, 그런 팀의 레이팅 합 최댓값을 구합니다.
난이도

보통10점 중 4점

유형
완전 탐색, 정렬, 조합론
정답자
아직 제출이 없습니다

문제

ICPC 대학의 경쟁 프로그래밍 동아리에는 1번부터 NN번까지 번호가 붙은 학생 NN명이 있다. 학생 ii의 레이팅은 AiA_i이며, 이는 경쟁 프로그래밍 문제 풀이 실력을 추정한 값이다.

대회 시즌이 다가와서 동아리 코치 Morgan은 예산이 한정되어 있어 특정 대회에 좋은 팀을 최대 한 팀만 보내려고 한다. 팀은 서로 다른 학생 3명으로 구성된다. 학생 ii, jj, kk로 이루어진 팀의 팀 레이팅은 Ai+Aj+AkA_i + A_j + A_k이고, 레이팅 차이는 max⁡(Ai,Aj,Ak)−min⁡(Ai,Aj,Ak)\max(A_i, A_j, A_k) - \min(A_i, A_j, A_k)이다.

Morgan은 레이팅 차이가 임계값 MM 이하인 팀을 균형 잡힌 팀으로 본다. 균형 잡힌 팀 중에서는 팀 레이팅이 가능한 한 큰 팀을 원한다.

Morgan은 두 가지 값을 구하려고 한다. 첫 번째는 만들 수 있는 균형 잡힌 팀 구성의 개수이고, 두 번째는 만들 수 있는 균형 잡힌 팀 중 최대 팀 레이팅이다. 두 팀 구성은 학생이 한 명이라도 다르면 서로 다른 구성이다.

입력

첫 줄에 두 정수 NN과 MM(3≤N≤2003 \le N \le 200; 0≤M≤40000 \le M \le 4000)이 주어진다. 다음 줄에는 NN개의 정수 AiA_i(0≤Ai≤40000 \le A_i \le 4000)가 주어지며, 이는 학생 ii의 레이팅이다.

출력

균형 잡힌 팀 구성이 하나 이상 있으면, 균형 잡힌 팀 구성의 개수와 균형 잡힌 팀의 최대 팀 레이팅을 공백으로 구분해 한 줄에 출력한다. 균형 잡힌 팀 구성이 하나도 없으면 -1을 한 줄에 출력한다.

예제4

  1. 예제 1

    입력
    5 150
    1400 1425 1250 4000 1300
    
    예상 출력
    2 4125
    
  2. 예제 2

    입력
    4 100
    2000 1900 1800 2100
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    8 4000
    100 200 300 400 500 600 700 800
    
    예상 출력
    56 2100
    
  4. 예제 4

    입력
    8 0
    10 10 10 20 20 20 30 30
    
    예상 출력
    2 60