리스트 테스트
시간 제한1초메모리 제한1024 MB
이중 연결 리스트에서 add, remove, pop, clear, storlek 명령을 조합해 열 가지 잘못 구현된 리스트 중 최대한 많이 오류를 드러내는 테스트를 설계한다.
문제
Mårten은 이중 연결 리스트를 직접 구현했다. 사실 Mårten은 그렇게 똑똑하지 않다. 거의 모든 표준 라이브러리에 연결 리스트가 이미 있다는 걸 모른다.
Mårten은 그게 멍청하다는 데 동의하지 않는다. 자기 리스트가 표준 라이브러리의 것보다 훨씬 효율적이라고 생각한다. 효율성이 전부가 아니라는 걸 보여 줘서 그를 반박하는 건 당신 몫이다. 그의 리스트는 고장 나 있기 때문이다.
당신의 임무는 Mårten의 고장을 드러내는 여러 테스트 케이스를 작성하는 것이다. Mårten은 연결 리스트를 총 10번 작성했고, 당신의 테스트 케이스는 Mårten의 구현 중 최대한 많은 것을 무너뜨려야 한다.
테스트 케이스는 다음 형식의 명령 목록으로 이루어진다.
storlek- 리스트의 크기를 묻는다.pop_first- 리스트의 첫 번째 원소를 제거한다.pop_back- 리스트의 마지막 원소를 제거한다.add_first X- 정수 을 리스트의 맨 앞에 추가한다.add_back X- 정수 을 리스트의 맨 뒤에 추가한다.add X Y- 정수 을 리스트의 위치 에 추가한다.remove Y- 리스트의 위치 에 있는 원소를 제거한다.clear- 리스트의 모든 원소를 제거한다.
리스트의 위치는 0부터 시작한다.
테스트 케이스 사이에는 세 개의 하이픈으로 이루어진 한 줄 ---을 출력한다.
입력
이 문제에는 입력이 없다.
출력
여러분이 작성한 테스트 케이스를 여러 줄에 걸쳐 출력한다. 최대 1000줄까지 출력할 수 있다.