시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1.5 초 | 1024 MB | 324 | 108 | 50 | 23.923% |
이름이 main
폴더 안에 여러가지 파일과 폴더가 존재한다.
main ├─ FolderA │ ├─ File1 │ └─ File2 └─ FolderB ├─ FolderC │ ├─ File4 │ └─ File5 ├─ File1 └─ File3
위 구조는 main
폴더의 하위 구조를 계층적으로 표시한 것이다. FolderA
, FolderB
, FolderC
는 폴더이고 File1
, File2
, File3
은 파일이다. 파일 이름이 같은 경우는 내용이 완전 동일한 파일이다.
한 폴더 안에 같은 이름을 가진 파일이 두 개 이상 존재할 수 없다.
main
폴더의 하위 디렉토리에 같은 이름의 폴더가 두 개 이상 존재할 수 없다.
폴더 또는 파일을 옮겨 main
폴더를 정리하려고 한다.
예를 들어, FolderB
폴더 하위에 있는 두 개의 파일 File1
, File3
과 하나의 폴더 FolderC
를 FolderA
폴더 하위에 옮기려고 한다.
File1 파일은 FolderA
폴더 안에 동일한 파일이 이미 존재하므로 덮어쓴다. File3
은 동일한 파일이 없으므로 그대로 옮긴다. FolderC
폴더도 동일한 폴더가 없으므로 FolderA
폴더 하위에 옮긴다. FolderB
폴더 하위에 있는 폴더와 파일을 다 옮겼으므로 FolderB
는 삭제한다.
아래는 FolderB
폴더를 FolderA
폴더 안에 옮긴 후 main
폴더의 하위 구조를 계층적으로 표시한 것이다.
main └─ FolderA ├─ FolderC │ ├─ File4 │ └─ File5 ├─ File1 ├─ File2 └─ File3
이러한 과정을 통해 폴더를 정리하려고 한다. 폴더 정리 후 쿼리를 통하여 파일의 정보를 확인하려고 한다.
첫 번째 줄에는 main
폴더 안에 있는 폴더의 총 개수 $N$과 파일의 총 개수 $M$이 공백으로 구분되어 주어진다.
두 번째 줄부터 $N + M + 1$ 번째까지 상위 폴더의 이름 $P$, 폴더 또는 파일의 이름 $F$, 폴더인지 아닌지 알려주는 $C$가 공백으로 구분되어 주어진다.
$C$의 값은 $F$가 폴더라면 1, 파일이라면 0으로 주어진다.
$N + M + 2$ 번째 줄에는 옮기는 횟수 $K$가 주어진다.
그 다음 줄부터 총 $K$ 줄에 걸쳐 폴더 경로 $A$와 폴더 경로 $B$가 공백으로 구분되어 주어진다.
옮기는 행위는 입력 순서대로 수행이 되어야 한다.
$A$ 하위에 있는 파일과 폴더들을 $B$ 하위에 옮기는 것이다. 이때, $A$는 $B$의 상위 폴더가 아님을 보장한다.
그 다음 줄에는 쿼리의 개수 $Q$가 주어진다.
그 다음 줄부터 $Q$개의 쿼리가 주어진다. 쿼리마다 main
으로부터 폴더의 경로 정보가 들어온다. 예를 들어 main
폴더 안에 FolderB
에 대한 쿼리가 들어온다면, FolderB
의 경로인
로 주어진다. 반드시 폴더가 존재하는 경로로 주어짐을 보장한다.main/FolderB
쿼리 순서대로 한 줄씩 폴더 하위에 있는 파일의 종류의 개수와 파일의 총 개수를 출력한다.
파일의 종류의 개수는 같은 파일이 여러개 있을 경우 하나로 계산한다. 파일의 총 개수는 같은 파일이 있더라도 하나로 계산하지 않는다.
예를 들어 이름이 File1
파일이 5개가 있을 경우 파일의 종류는 1 가지이고 파일의 총 개수는 5개이다.
3 6 main FolderA 1 main FolderB 1 FolderA File1 0 FolderA File2 0 FolderB FolderC 1 FolderC File4 0 FolderC File5 0 FolderB File1 0 FolderB File3 0 1 main/FolderB main/FolderA 3 main main/FolderA main/FolderA/FolderC
5 5 5 5 2 2
3 4 main FolderA 1 main FolderB 1 FolderB File2 0 FolderA FolderC 1 FolderA File1 0 FolderC File2 0 FolderC File3 0 2 main/FolderA main/FolderB main/FolderB/FolderC main/FolderB 2 main main/FolderB
3 3 3 3