Содержание курса
← Занятие 11 · Словари
Обязательная задача

Права доступа

Условие

В файловую систему одного суперкомпьютера проник вирус, который сломал контроль за правами доступа к файлам. Для каждого файла известно, с какими действиями можно к нему обращаться:

  • запись W,
  • чтение R,
  • запуск X.

В первой строке содержится число N — количество файлов содержащихся в данной файловой системе. В следующих N строчках содержатся имена файлов и допустимых с ними операций, разделенные пробелами. Далее указано чиcло M — количество запросов к файлам. В последних M строках указан запрос вида Операция Файл. К одному и тому же файлу может быть применено любое колличество запросов.

Вам требуется восстановить контроль над правами доступа к файлам (ваша программа для каждого запроса должна будет возвращать OK если над файлом выполняется допустимая операция, или же Access denied, если операция недопустима.

Пример

Ввод
4
helloworld.exe R X
pinglog W R
nya R
goodluck X W R
5
read nya
write helloworld.exe
execute nya
read pinglog
write pinglog
Вывод
OK
Access denied
Access denied
OK
OK

Все тесты задачи 6

Тест 1СвернутьПоказать
Ввод
4
helloworld.exe R X
pinglog W R
nya R
goodluck X W R
5
read nya
write helloworld.exe
execute nya
read pinglog
write pinglog
Ожидаемый вывод
OK
Access denied
Access denied
OK
OK
Тест 2СвернутьПоказать
Ввод
1
abacaba X
3
read abacaba
write abacaba
execute abacaba
Ожидаемый вывод
Access denied
Access denied
OK
Тест 3СвернутьПоказать
Ввод
1
tmp_909925047 W X R
7
execute tmp_909925047
read tmp_909925047
write tmp_909925047
read tmp_909925047
execute tmp_909925047
execute tmp_909925047
read tmp_909925047
Ожидаемый вывод
OK
OK
OK
OK
OK
OK
OK
Тест 4СвернутьПоказать
Ввод
5
tmp_1017722015 W
tmp_897110090 X W R
tmp_651548400 W X
tmp_422551574 X R W
tmp_477658548 W
1
write tmp_897110090
Ожидаемый вывод
OK
Тест 5СвернутьПоказать
Ввод
2
tmp_584361681 R X
tmp_70361076 X
3
read tmp_70361076
write tmp_70361076
write tmp_70361076
Ожидаемый вывод
Access denied
Access denied
Access denied
Тест 6СвернутьПоказать
Ввод
4
tmp_796487715 X R W
tmp_31144126 X R
tmp_967334538 R
tmp_264755563 R W
3
read tmp_264755563
execute tmp_796487715
execute tmp_796487715
Ожидаемый вывод
OK
OK
OK