티스토리 뷰

728x90

https://www.acmicpc.net/problem/12018

 

12018번: Yonsei TOTO

연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배

www.acmicpc.net

 

수강생이 정원보다 적을 경우 1 마일리지를 쓴다는 것을 빨리 캐치하면 쉽게 풀 수 있는 문제입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
n, m = map(int, input().split())
cnt = 0
tmp = []
for _ in range(n):
    P, L = map(int, input().split())
    lst = sorted(list(map(int, input().split())), reverse=True)
    if len(lst) >= L:
        tmp.append(lst[L-1])
    else:
        tmp.append(1)
tmp.sort()
for i in tmp:
    if m - i >= 0:
        m -= i
        cnt += 1
    else:
        break
print(cnt)
cs

 

 

댓글