동종일까 이종일까?
면접 대비시간 제한3초메모리 제한256 MB
삽입과 첫 번째 항목 삭제 연산을 처리하면서 매번 리스트가 동종, 이종, 둘 다, 또는 둘 다 아님인지 판별합니다.
문제
처음에 비어 있는 수의 목록에 대해 다음 두 가지 연산을 처리한다.
insert number— 주어진 수를 목록의 맨 뒤에 추가한다.delete number— 주어진 수가 처음 나타나는 원소 하나를 제거한다. 목록에 그 수가 없으면 목록은 그대로 유지된다.
예를 들어 목록 에 를 삽입하면 가 된다. 이 목록에서 을 삭제하면 가 되고, 에서 을 삭제하면 목록은 변하지 않는다.
목록에 서로 같은 수가 적어도 두 개 있으면 그 목록은 동종(homogeneous)이고, 서로 다른 수가 적어도 두 개 있으면 이종(heterogeneous)이다. 예를 들어 는 동종, 는 이종, 는 둘 다에 해당하며, 빈 목록은 둘 중 어느 것에도 해당하지 않는다.
비어 있는 목록에서 시작하여 여러 개의 insert와 delete 연산을 처리하고, 각 연산 이후 목록이 동종인지, 이종인지, 둘 다인지, 아니면 둘 다 아닌지를 판별하는 프로그램을 작성하시오.
입력
첫째 줄에 연산의 개수 이 주어진다 ().
이어지는 개의 줄에는 각각 하나의 연산이 주어진다. 각 연산은 단어 insert 또는 delete와 그 뒤에 오는 정수 로 이루어진다 ().
출력
각 연산 이후 목록의 상태를 나타내는 단어 하나를 한 줄에 출력한다.
both— 목록이 동종이면서 이종인 경우.homo— 목록이 동종이지만 이종은 아닌 경우.hetero— 목록이 이종이지만 동종은 아닌 경우.neither— 목록이 동종도 이종도 아닌 경우.