만드는 중입니다

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

프로그래밍 대회 컵

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

요약
모든 참가자의 앞선 대회 점수가 주어질 때, 마지막 대회에 참가하지 않으면 다른 참가자들이 최선을 다했을 때 최악의 순위가 몇 등인지 구합니다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

당신은 프로그래밍 대회 컵에 참가하고 있다. 컵은 여러 번의 프로그래밍 대회로 이루어지며, 시즌 마지막에 컵 상위 15명이 결승전을 치른다. 결승 전에 남은 대회는 하나뿐이다. 지금까지의 성적으로 이미 결승 진출이 확정되었는지 알고 싶다. 확정되었다면 마지막 대회를 건너뛰어도 된다.

컵 순위는 다음과 같이 정해진다. 각 대회에서 참가자는 0점 이상 101점 이하의 점수를 얻는다. 종합 점수는 참가자가 얻은 점수 중 가장 높은 네 개의 합이다. 예를 들어 6번의 대회에서 45, 15, 32, 0, 30, 20점을 얻었다면 종합 점수는 45 + 32 + 30 + 20 = 127이다. 참가자 X의 순위는 X보다 종합 점수가 더 큰 참가자 수에 1을 더한 값이다.

대회에서 받는 점수는 얻은 순위에 따라 아래 표로 정해진다. 30위보다 낮은 순위는 0점이다.

순위점수순위점수순위점수
110011242110
2751222229
3601320238
4501418247
5451516256
6401615265
7361714274
8321813283
9291912292
10262011301

같은 순위가 여러 명이면 그 순위들에 해당하는 점수의 평균을 각자 받는다. 이 평균은 소수점 이하를 올림하여 정수로 만든다. 예를 들어 3명이 2위를 공동으로 차지하면 세 명 모두 ⌈(75+60+50)/3⌉=62\lceil (75+60+50)/3 \rceil = 62점을 받고, 다음 참가자는 5위가 되어 45점을 받는다(5위도 공동이면 그보다 적은 점수). 30위에서도 같은 규칙이 적용된다. 4711명이 30위를 공동으로 차지하면 모두 1점을 받는다.

참가자는 각 대회에 현장 또는 온라인으로 참가할 수 있다. 현장에서 참가하면 원래 점수와 관계없이 1점을 추가로 받는다. 대회에 참가하지 않으면 0점을 받는다.

입력

첫 줄에 두 정수 nn과 mm이 주어진다(2≤n≤102 \le n \le 10, 1≤m≤1051 \le m \le 10^5). nn은 결승전을 제외한 컵의 대회 수이고, mm은 처음 n−1n-1번의 대회 중 한 번 이상 참가한 사람 수이다.

이어서 mm줄에 참가자 한 명씩 n−1n-1개의 정수 0≤s1,…,sn−1≤1010 \le s_1, \ldots, s_{n-1} \le 101이 주어진다. sis_i는 그 참가자가 ii번째 대회에서 받은 점수이다. 맨 처음 나오는 참가자가 당신이다.

입력된 점수는 실제 대회 점수와 다를 수 있다.

출력

당신이 마지막 대회에 참가하지 않는다고 가정할 때, 마지막 결과로 나올 수 있는 가장 나쁜 순위 rr을 정수 하나로 출력한다.

예제3

  1. 예제 1

    입력
    4 2
    50 50 75
    25 25 25
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5 2
    50 50 50 50
    25 25 25 25
    
    예상 출력
    1
    
  3. 예제 3

    입력
    2 4
    90
    1
    3
    2
    
    예상 출력
    3