강의실 예약 시스템
면접 대비시간 제한1초메모리 제한1024 MB
시작 시각 순으로 들어오는 예약 요청마다 같은 강의실에 이미 수락된 예약과 겹치는지 판단해 YES 또는 NO를 출력합니다.
문제
충남대학교 공대 5호관에는 번부터 번까지 번호가 매겨진 개의 강의실이 있다. 학생들은 강의실 예약 시스템을 통해 원하는 강의실을 예약한 뒤에 이용한다. 강의실을 예약하려면 이용하려는 강의실 번호 와 이용 시작 시각 , 이용 끝 시각 를 예약 시스템에 보내야 한다.
어느 날 예약 시스템에 개의 예약 요청이 들어왔다. 요청은 이용 시작 시각 가 빠른 순서로 주어지며, 같은 시작 시각을 가진 요청은 없다. 시스템은 요청을 순서대로 확인한다. 어떤 요청이 같은 강의실에 대해 이미 수락한 예약과 겹치지 않으면 수락하고, 겹치면 거부한다. 한 예약의 끝 시각과 다른 예약의 시작 시각이 같은 경우는 겹친 것이 아니다.
개의 예약 요청이 주어질 때, 각 요청을 수락하는지 거부하는지 구하라.
입력
첫째 줄에 정수 , ()이 주어진다.
둘째 줄부터 개의 줄에 번째 예약의 강의실 번호 ()와 이용 시작 시각 , 이용 끝 시각 ()가 주어진다. 예약은 시작 시각 의 오름차순으로 주어지며, 같은 시작 시각을 가진 예약은 없다.
출력
개의 줄에 요청 순서대로 수락하면 YES, 거부하면 NO를 출력한다.
힌트
입출력이 느리면 여러 줄을 입력받거나 출력할 때 시간 초과가 날 수 있다.
C++에서 cin과 cout을 쓴다면 cin.tie(NULL)과 sync_with_stdio(false)를 모두 적용하고, endl 대신 개행 문자(\n)를 쓴다. 이렇게 설정하면 scanf, printf, puts, getchar, putchar 같은 C 방식의 입출력은 사용할 수 없다.
Java에서는 Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 쓸 수 있다. BufferedWriter.flush는 마지막에 한 번만 호출한다.
Python에서는 input 대신 sys.stdin.readline을 쓸 수 있다. 이때 끝의 개행 문자까지 함께 읽히므로, 문자열을 저장할 때는 .rstrip()을 붙이는 것이 좋다.