가희와 파일 탐색기 2
시간 제한4초메모리 제한512 MB
사용자의 소속 그룹과 파일의 3자리 권한, 소유자, 소유 그룹이 주어질 때 각 질의마다 사용자가 해당 파일을 읽기, 쓰기, 실행할 수 있는지 판단합니다.
문제
가희는 jo_test 폴더에 들어와 있습니다. jo_test 폴더에는 일반 파일이 개 있습니다.
각 파일에는 권한이 있습니다. 권한은 어떤 유저가 특정한 일을 수행할 수 있는지를 나타내며, 3개의 숫자로 구성됩니다.
표 1 숫자와 해당되는 권한
3개의 숫자 중 첫 번째 숫자는 파일을 소유한 유저의 권한을 나타냅니다. 두 번째 숫자는 파일을 소유한 그룹의 권한을 나타냅니다. 세 번째 숫자는 파일을 소유한 그룹에 속하지 않고, 파일을 소유한 유저도 아닌 경우의 권한을 나타냅니다.
예를 들어 파일 train_mugunghwa의 권한이 750이고, 이 파일을 소유한 유저가 cho, 소유한 그룹이 gahui라고 하겠습니다. 그룹 gahui에 속한 유저가 cho1, cho2라고 하겠습니다. 이때 유저 cho는 train_mugunghwa에 대해 읽기, 실행, 수정 권한이 있습니다. 유저 cho2는 train_mugunghwa를 소유한 그룹에 속하므로 이 파일에 대해 읽기와 실행 권한이 있습니다. 마지막으로 유저 gahui는 cho가 아니고, 파일을 소유한 그룹인 gahui에도 속하지 않으므로 이 파일에 대해 아무것도 할 수 없습니다.
유저, 그룹, 그리고 jo_test 폴더 안의 파일에 대한 정보가 주어집니다. 유저가 jo_test 안의 파일에 대해 읽기, 수정, 실행을 시도할 때 성공하는지 실패하는지 판단해 주세요.
각 파일에 대해 유저는 아래와 같은 권한 종류를 가집니다.
표 2 이름이 FILE_NAME인 파일에 대해 유저가 가지는 권한 종류
입력
첫 줄에 유저 정보의 개수 와 jo_test 폴더 안 파일 정보의 개수 가 공백으로 구분되어 주어집니다.
다음 개의 줄에는 아래 형식 중 하나로 유저 정보가 주어집니다.
USER_NAME: 유저USER_NAME이 있습니다. 이 유저가 속한 그룹에 대한 정보는 없습니다.USER_NAME USER_GROUPS: 유저USER_NAME이 속한 그룹은USER_GROUPS에 있습니다.
유저가 속한 그룹이 여러 개이면 쉼표(',')로 구분됩니다. 또한 USER_NAME은 그룹 이름이 USER_NAME인 그룹에 자동으로 속합니다. 유저가 속한 그룹 정보에 USER_NAME이 없더라도, 그룹 이름이 USER_NAME인 그룹에 속한다는 점에 주의하세요.
다음 개의 줄에는 아래 형식으로 파일 정보가 주어집니다.
FILE_NAME FILE_PERMISSION OWNER OWNED_GROUP: 이름이FILE_NAME인 파일의 권한은FILE_PERMISSION이고, 소유자는OWNER, 소유 그룹은OWNED_GROUP입니다.
그다음 줄에 질문의 개수 가 주어집니다.
다음 개의 줄에는 USER_NAME, FILE_NAME, OPERATION이 공백으로 구분되어 주어집니다. OPERATION은 'R', 'W', 'X' 중 하나이며, 각각 읽기, 수정, 실행을 뜻합니다. 이 줄은 유저 USER_NAME이 파일 FILE_NAME에 대해 연산 OPERATION을 수행하려고 하는지를 나타냅니다.
출력
각 질문에 대해 연산이 성공하면 1을, 실패하면 0을 출력해 주세요. 각 질문의 답은 한 줄에 하나씩 출력해 주세요.
제한
- 유저 이름, 그룹 이름,
jo_test에 있는 파일 이름은 대문자, 소문자, 숫자로만 구성되며, 길이는 1 이상 10 이하입니다. - 유저가 속한 그룹 정보
USER_GROUPS에는 많아야 10개의 그룹이 있습니다. 이 그룹들의 이름은 중복되지 않습니다. - 개의 그룹 정보에 나오는 그룹 개수의 총합은 를 넘지 않습니다.
- 파일 정보에 대해:
jo_test에 있는 파일만 주어집니다.- 존재하는 유저와 그룹만 주어집니다.
OWNER권한을 가진 유저는GROUP권한을 가진 유저가 할 수 있는 모든 연산을 할 수 있습니다.GROUP권한을 가진 유저는OTHER권한을 가진 유저가 할 수 있는 모든 연산을 할 수 있습니다.- 파일에 대해 수정 권한이 있다면 읽기 권한도 있습니다.
- 파일 이름은 중복되지 않습니다.
- 질문에는
jo_test에 있는 파일만 주어지며, 존재하는 유저만 주어집니다. - 파일 이름과 유저 이름은 중복되지 않습니다.