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

Ответы на вопрос

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



Вот пример решения вашей задачи на языке Python:
pythondef check_file_permissions(permissions, operations):
file_permissions = {}
for permission in permissions:
file, perms = permission.split()
file_permissions[file] = set(perms)
results = []
for operation in operations:
op, file = operation.split()
if file in file_permissions:
if op in file_permissions[file]:
results.append("OK")
else:
results.append("Access denied")
else:
results.append("Access denied")
return results
# Считываем входные данные
n = int(input())
permissions = []
for _ in range(n):
permissions.append(input())
m = int(input())
operations = []
for _ in range(m):
operations.append(input())
# Проверяем разрешения и выводим результаты
results = check_file_permissions(permissions, operations)
for result in results:
print(result)
Программа сначала считывает количество файлов n
и их разрешения из входных данных. Затем считывается количество операций m
и сами операции. Функция check_file_permissions
принимает разрешения и операции в качестве аргументов и проверяет, возможно ли выполнить каждую операцию с файлом. Результаты проверки сохраняются в списке results
. Наконец, результаты выводятся на экран.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili