Написать на Python
Компьютерный вирус атаковал файловую систему суперкомпьютера и повредил контроль за правами доступа к файлам. Для каждого файла известен набор операций, которые могут быть применены к нему: писать (W), читать (R), выполнить (X). Первая строка содержит число n – количество файлов, содержащихся в файловой системе. Следующие n строк содержат имена файлов и разрешенные операции с ними, разделенные пробелами. Следующая строка содержит целое число m – количество операций с файлами. В следующих m строках записаны операции, выполняемые над файлами. К одному файлу можно обращаться многократно. Для каждого запроса программа должна напечатать OK, если запрошенная операция с файлом возможна, или Access denied, если операцию выполнить невозможно.
Вхідні дані:
4
helloworld.py R X
pinglog W R
scripts R
goodluck X W R
5
read scripts
write helloworld.py
execute scripts
read pinglog
write pinglog
Вихідні дані:
OK
Access denied
Access denied
OK
OK
Answers & Comments
n = int(input()) # количество файлов
files = {} # словарь для хранения разрешенных операций с файлами
# заполнение словаря files
for i in range(n):
name, *ops = input().split()
files[name] = set(ops)
m = int(input()) # количество операций с файлами
# обработка операций с файлами
for i in range(m):
op, name = input().split()
if op == 'read' and 'R' in files[name]:
print('OK')
elif op == 'write' and 'W' in files[name]:
print('OK')
elif op == 'execute' and 'X' in files[name]:
print('OK')
else:
print('Access denied')