페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3409

미니 골프 게임 5s 256MB

문제

반복되는 모의고사에 싫증을 느낀 정올학원 친구들이 휴가를 갔다. n명의 친구들이 모여서 미니 골프 게임을 하게 되었다. 각 라운드별로, 각 선수(친구)가 공을 여러 번 쳐서 정해진 구멍 속에 넣는 방식이다. 몇 번 쳐서 구멍 속에 들어갔냐로 점수를 따지게 되며, 당연히 적은 횟수가 더 높은 점수이다. 선수들의 총 점수는, 단순히 각 라운드별 점수의 총합이다.

 

원래 미니 골프 게임을 할 때에는, 여러분들처럼 운동 신경이 없어서 공을 정말정말 많이 쳐야 골인시키는 선수도 있기 때문에, 

공을 K번 쳤는데도 골인시키지 못하면, 그 사람의 점수는 K로 하고 더 이상 진행하지 않는다. 그러나 우리 정올학원 친구들은 이 룰을 모르고 게임을 마쳤다. 게임을 마친 후에야 이런 룰이 있다는 것을 알게 되었다. 그래서 친구들은, 그제서야 점수판에서 K이상인 점수는 모두 K로 바꾸려고 한다. 여기서 K값으로 보정되는 점수란, 최종 점수가 아닌 라운드별 점수를 뜻한다.

 

문제는, 아무도 정확히 K가 얼마인지를 모른다는 것이다. K값이 무엇이냐에 따라서 선수들의 순위가 바뀌게 된다. 여기서 순위란, 본인을 포함하여, 

점수가 자기보다 높거나(공을 적게 치거나) 같은 사람의 수이다. 최종 점수가 1번 선수부터[3 5 5 4 3] 이라면, 이들의 순위는 각각 [2 5 5 3 2]이 된다. 어떤 K값을 적용하여, 각 라운드별 점수가 달라지고, 그리하여 최종 점수가 달라져서 [3 3 4 4 3]이 되었다고 해보자. 

그렇다면 이들의 순위는 각각 [3 3 5 5 3]이된다.

정올 친구들은 K값에 따라 변화하는 순위 중, 자신이 받을 수 있는 가장 높은(숫자가 낮은) 순위가 얼마인지 궁금해졌다. 

이를 구하는 프로그램을 작성하라.

 

 


입력

첫 줄에 두 정수 n과 m이 공백을 사이에 두고 주어지며, 미니 골프를 치는 정올 친구 선수들의 수 n은 2이상 500이하의 정수이고, 라운드의 수인 m은 1이상 50이하이다. 다음 n줄에 있어서 m개의 정수가 주어지며, i번째 줄 j번째 수는 i번 선수가 j번째 라운드에 받은 점수이다. 모든 점수는 1이상 10^9 이하이다. 전체 입력 40%: n<=50

출력

n개의 줄에 걸쳐, 각 선수들이 받을 수 있는 가장 높은(숫자가 낮은) 순위를 출력한다.

예제 #1

3 3

2 2 2
4 2 1
4 4 1
1

2
2

예제 #2

6 4

3 1 2 2
4 3 2 2
6 6 3 2
7 3 4 3
3 4 2 4
2 3 3 5
1

2
5
5
4
3

출처

ACM-ICPC 2019 world final J.Miniature Golf

로그인해야 코드를 작성할 수 있어요.