아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

리스트 테스트

시간 제한1초메모리 제한1024 MB

요약
이중 연결 리스트에서 add, remove, pop, clear, storlek 명령을 조합해 열 가지 잘못 구현된 리스트 중 최대한 많이 오류를 드러내는 테스트를 설계한다.
난이도

보통10점 중 6점

유형
연결 리스트, 구현, 시뮬레이션, 완전 탐색
정답자
아직 제출이 없습니다

문제

Mårten은 이중 연결 리스트를 직접 구현했다. 사실 Mårten은 그렇게 똑똑하지 않다. 거의 모든 표준 라이브러리에 연결 리스트가 이미 있다는 걸 모른다.

Mårten은 그게 멍청하다는 데 동의하지 않는다. 자기 리스트가 표준 라이브러리의 것보다 훨씬 효율적이라고 생각한다. 효율성이 전부가 아니라는 걸 보여 줘서 그를 반박하는 건 당신 몫이다. 그의 리스트는 고장 나 있기 때문이다.

당신의 임무는 Mårten의 고장을 드러내는 여러 테스트 케이스를 작성하는 것이다. Mårten은 연결 리스트를 총 10번 작성했고, 당신의 테스트 케이스는 Mårten의 구현 중 최대한 많은 것을 무너뜨려야 한다.

테스트 케이스는 다음 형식의 명령 목록으로 이루어진다.

  • storlek - 리스트의 크기를 묻는다.
  • pop_first - 리스트의 첫 번째 원소를 제거한다.
  • pop_back - 리스트의 마지막 원소를 제거한다.
  • add_first X - 정수 −1000≤X≤1000-1000 \le X \le 1000을 리스트의 맨 앞에 추가한다.
  • add_back X - 정수 −1000≤X≤1000-1000 \le X \le 1000을 리스트의 맨 뒤에 추가한다.
  • add X Y - 정수 −1000≤X≤1000-1000 \le X \le 1000을 리스트의 위치 YY에 추가한다.
  • remove Y - 리스트의 위치 YY에 있는 원소를 제거한다.
  • clear - 리스트의 모든 원소를 제거한다.

리스트의 위치는 0부터 시작한다.

테스트 케이스 사이에는 세 개의 하이픈으로 이루어진 한 줄 ---을 출력한다.

입력

이 문제에는 입력이 없다.

출력

여러분이 작성한 테스트 케이스를 여러 줄에 걸쳐 출력한다. 최대 1000줄까지 출력할 수 있다.

예제1

  1. 예제 1

    입력
    예상 출력
    storlek
    clear
    clear
    clear
    ---
    clear
    storlek
    storlek
    clear
    add 1000 0