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

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

볼링

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

요약
각 선수는 G개의 점수를 독립적으로 재배열할 수 있다. 한 경기에서 다른 모든 선수보다 점수가 엄격히 높으면 이긴 것으로 볼 때, 각 선수가 얻을 수 있는 최소 승수와 최대 승수를 구한다.
난이도

어려움10점 중 8점

유형
그리디, 정렬, 수학, 조합론
정답자
아직 제출이 없습니다

문제

지난 토요일에 Paul, Ivo, Nick은 볼링장에 갔다. 한 시간 동안 레인을 빌려 세 게임을 했다. 이렇게 가볍게 즐기는 경기에서 이들은 그저 이긴 게임 수를 세기로 했다. 가장 많이 이긴 사람이 최종 승자가 된다. (동점이라면 승자를 가릴 다른 방법을 찾아야 했을 것이다.)

이번에는 Paul이 두 게임, Nick이 한 게임을 이겨서 Paul이 승자가 되었다. Ivo는 자신의 점수가 그렇게 나쁘지 않다고 느꼈는데도 어떻게 세 게임을 모두 잃었는지 궁금했다. 그래서 전광판을 다시 보니 이러했다.

게임123
Paul1028694
Ivo9873112
Nick9584125

Paul이 실제로 두 게임을 이기고 Nick이 한 게임을 이겼지만, Ivo는 자신이 게임 순서를 112-98-73으로 바꿔서 했다면 두 게임을 이기고 Paul은 하나도 이기지 못했을 것이라고 지적했다.

Ivo의 지적은 언뜻 보기보다 터무니없지 않다. 볼링에서는 다른 선수와 무관하게 각 게임이 치러지며, 심리적인 영향 정도만 있을 뿐이다. 한 선수의 연속된 점수도 서로 거의 독립적이고 같은 분포를 따른다고 볼 수 있다.

Ivo는 지난 토요일에는 현명하게도 이 이야기를 삼켰지만, 나중에 자신의 '잠재적 승수' 개념을 성적을 재는 척도로 써 볼 생각을 하기 시작했다. 각 선수의 최소 승수도 알면 흥미롭겠다고 결론지었다. 또한 승수를 최대화하거나 최소화하려는 선수의 게임만 순열할 수 있게 하는 것이 아니라 다른 선수의 게임도 순열할 수 있게 하면 좋겠다고 생각했다. 마지막으로 Ivo는 선수가 언제 게임을 '이기는지'를 정확히 정의해야 했다. 선수는 자신의 점수가 다른 모든 선수의 점수보다 엄격히 클 때에만 그 게임을 이긴다.

Ivo는 각 선수 i에 대해 다음을 계산하는 프로그램을 작성해 달라고 요청한다.

  • mi, 각 선수의 점수를 어떻게 순열하든 상관없이 선수 i가 이겼을 최소 게임 수
  • Mi, 각 선수의 점수를 그 목적에 맞게 최적으로 순열했을 때 선수 i가 이겼을 수 있는 최대 게임 수

입력

입력의 첫 줄에는 테스트 케이스의 수가 하나 주어진다. 각 테스트 케이스는 다음 형식이다.

  • 선수 수와 게임 수를 나타내는 두 정수 P와 G가 공백 하나를 사이에 두고 주어지는 한 줄 (2 ≤ P ≤ 100, 2 ≤ G ≤ 1000).
  • 선수마다 한 줄씩, 각 줄에 그 선수의 연속된 점수를 나타내는 G개의 정수가 공백 하나를 사이에 두고 주어진다.

각 점수는 0 이상 300 이하이다.

출력

입력의 각 테스트 케이스마다 선수마다 한 줄씩, 모두 P개의 줄을 출력한다. i번째 줄에는 mi와 Mi를 공백 하나를 사이에 두고 출력한다.

예제1

  1. 예제 1

    입력
    2
    3 3
    102 86 94
    98 73 112
    95 84 125
    3 4
    100 110 112 116
    98 112 110 112
    90 98 113 113
    
    예상 출력
    0 2
    0 2
    1 2
    1 3
    0 2
    1 2