상담원
시간 제한8초메모리 제한512 MB
끊긴 뒤 다시 전화하는 고객들을 시뮬레이션하고, 모든 통화가 시간 T 안에 끝나는 최소 상담원 수를 구한다.
문제
컴퓨터 판매 회사 JAG의 고객 전화 상담 센터는 지금 큰 혼란에 빠져 있다. 상담을 요청하는 고객이 너무 많고, 그 고객들이 쉴 새 없이 전화를 건다. 회사는 이 상황을 감당하려면 상담원이 몇 명 필요한지 알아내려고 한다.
문제를 단순하게 만들기 위해 다음 시뮬레이션만 생각한다.
고객은 명이고, 번 고객의 번호는 이다. 각 고객은 세 정수 , , 로 정해진다. 상담원이 번 고객을 상담하는 데 단위 시간이 걸린다. 번 고객은 전화를 건 시각부터 단위 시간이 지날 때까지 어느 상담원도 응답하지 않으면 전화를 끊는다. 전화를 끊고 단위 시간 뒤에 다시 건다. 전화를 건 시각부터 정확히 단위 시간이 되는 순간에 상담원이 응답하면 통화는 연결되고, 그 순간까지 아무도 응답하지 않으면 고객은 끊는다.
상담원 한 명은 동시에 한 고객만 상담한다. 상담을 마친 상담원은 곧바로 다른 전화를 받을 수 있다. 기다리는 고객이 여럿이면 상담원은 번호가 가장 작은 고객을 고른다.
시뮬레이션이 시작될 때 모든 고객이 동시에 상담 센터로 전화를 건다. 모든 고객의 상담이 단위 시간 안에 끝나면 시뮬레이션은 성공이다. 정확히 단위 시간에 끝나는 상담도 제때 끝난 것으로 친다.
시뮬레이션을 성공시키는 데 필요한 상담원의 최소 인원을 구하라.
입력
입력은 여러 개의 데이터 세트로 이루어진다. 각 데이터 세트의 형식은 다음과 같다.
N T
M1 L1 K1
.
.
.
MN LN KN
각 데이터 세트의 첫 줄에 양의 정수 과 가 주어진다 (, ). 은 고객 수, 는 시뮬레이션의 제한 시간이다.
이어지는 개 줄에 고객 정보가 주어진다. 번째 줄에는 세 정수 , , 가 주어진다 (, , ).
입력의 끝은 0 두 개만 있는 줄로 표시한다. 이 줄은 어느 데이터 세트에도 속하지 않으므로 처리하지 않는다.
출력
각 데이터 세트마다 시뮬레이션을 성공시키는 데 필요한 상담원의 최소 인원을 한 줄에 출력한다.