deltree

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

디스크 공간이 다 떨어져서 디렉터리를 몇 개 지우기로 했다. 무엇을 지울지 정하려면 파일 시스템에 무엇이 들어 있는지부터 살펴봐야 한다. 이 살펴보기는 명령줄 인터페이스에서 한다. 이 문제에서 쓰는 인터페이스의 이름은 MSDOS--이고, MSDOS에서 기능을 덜어낸 것이다. MSDOS--의 명령은 다음과 같다.

  • cd <directory>: <directory>는 현재 디렉터리 아래에 있는 상대 경로다. 현재 디렉터리를 <directory>로 옮긴다. 예를 들어 현재 디렉터리가 \A\B\이고 그 아래에 C\D가 있으면, cd C\D를 실행한 뒤 현재 디렉터리는 \A\B\C\D\가 된다.

  • cd \: 현재 디렉터리를 파일 시스템의 루트인 \로 옮긴다. 예를 들어 현재 디렉터리가 \A\B\일 때 cd \를 실행하면 현재 디렉터리는 \가 된다.

  • cd ..: 현재 디렉터리가 \가 아닐 때, 현재 디렉터리를 부모 디렉터리로 옮긴다. 예를 들어 현재 디렉터리가 \A\B\일 때 cd ..를 실행하면 현재 디렉터리는 \A\가 된다.

  • cd \<directory>: cd \cd <directory>를 차례로 실행한 것과 같다.

  • dir: 현재 디렉터리에 바로 들어 있는 파일과 디렉터리의 이름을 한 줄에 하나씩 나열한다. 이름은 영문 대소문자, 숫자, 점(.)으로 이루어진다. 디렉터리가 파일보다 먼저 나오고, 디렉터리는 이름만 한 줄에 적는다. 파일은 이름 뒤에 공백 하나를 두고 크기를 붙여 적는다. dir이 내놓는 목록의 형식은 다음과 같다.

    HW1
    HW1.old
    Syllab.pdf 10000
    notes.txt 3241
    
  • deltree <directory>: <directory>는 현재 디렉터리 아래에 있는 상대 경로다. <directory>와 그 아래의 모든 파일과 하위 디렉터리를 지워서 그만큼 공간을 확보한다. 예를 들어 현재 디렉터리가 \A\B\이고 그 아래에 C\D가 있으면, deltree C\D\A\B\C\D\와 그 아래에 있는 것을 모두 지운다.

  • deltree \<directory>: cd \deltree <directory>를 차례로 실행한 것과 같다.

  • exit: 명령줄 인터페이스를 끝낸다.

시나리오 하나는 루트에서 시작하는 살펴보기, 즉 서로 어긋나지 않는 cddir 명령의 나열과 그 결과에 deltree 명령 하나가 붙은 것이다. 살펴본 내용만으로는 파일 시스템 전체를 알 수 없다. 아직 dir로 열어 보지 않은 디렉터리는 비어 있을 수도 있다. 시나리오가 주어지면 그 deltree 명령이 확보한다고 보장할 수 있는 공간의 최댓값을 구하라. 이는 살펴본 결과와 어긋나지 않는 모든 파일 시스템에 대해 deltree가 지우는 크기의 최솟값이다.

입력

입력에는 서로 독립인 시나리오가 여럿 들어 있다. 각 시나리오 뒤에는 빈 줄이 하나 온다. 입력은 exit 명령으로 끝난다. 입력에 있는 모든 명령 앞에는 > 기호가 공백 없이 바로 붙어 있고, 명령이 내놓은 결과 줄에는 >가 붙지 않는다. 파일 이름의 길이는 50을 넘지 않는다. 입력은 항상 올바르다.

출력

ii번째 시나리오의 결과를 출력의 ii번째 줄에 정수 하나로 출력한다.