• Предмет: Информатика
  • Автор: ReyZe
  • Вопрос задан 5 месяцев назад

Написать на 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

Ответы

Ответ дал: honvert
0

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')

Вас заинтересует