상대음감의 노래찾기
면접 대비시간 제한1초메모리 제한1024 MB
여러 곡의 음표 데이터에서 멜로디가 음높이만 평행 이동한 형태로 나타나는 곡의 번호를 오름차순으로 출력하고, 없으면 -1을 출력합니다.
문제
상대음감은 음을 절대적인 높이로 구분하지 않고, 어떤 음과의 상대적인 높이로 음을 인식하는 능력을 말한다. 상대음감은 절대음감에 비해 불리한 점이 있지만, 어렴풋한 멜로디만으로도 노래를 찾을 수 있다는 장점이 있다.
기령이는 이 점에 착안해 상대음감 노래찾기 서비스를 만들려고 한다. 데이터베이스에는 노래마다 음 데이터가 저장되어 있다. 사용자가 멜로디를 입력하면, 서비스는 그 멜로디가 데이터베이스의 노래에 포함되어 있는지 확인해 해당 노래를 안내한다. 이 서비스는 멜로디 전체가 다른 높이에서 나타나도 일치하는 것으로 판단한다. 즉, 찾으려는 멜로디가 일 때, 임의의 정수 에 대하여 가 노래에 포함되어 있으면 일치한다.
예를 들어 사용자가 "1 2 1 2"를 입력하면, "3 4 3 4 5 5"라는 노래에 이 멜로디가 포함되므로 해당 노래를 안내한다.
상대음감의 노래찾기 서비스를 구현해 보자.
입력
첫째 줄에 데이터베이스에 있는 노래의 수 이 주어진다.
이후 개의 줄에 걸쳐 번 노래의 길이 와 음 데이터 가 공백으로 구분되어 주어진다. 모든 의 합은 을 넘지 않는다.
다음 줄에는 찾으려는 멜로디의 길이 이 주어진다. 그다음 줄에는 길이가 인 멜로디 데이터 이 주어진다.
데이터의 모든 값은 1 이상 10,000 이하이다.
출력
찾으려는 멜로디가 존재하는 노래의 번호를 공백으로 구분하여 오름차순으로 출력한다. 존재하지 않으면 -1을 출력한다.