Олимпиадный тренинг

Задача . ИТМО-2526 (отбор). 10–11. Проверка избыточности


Задача

Темы: Олимпиады ИТМО

Максим работает в Университете ИТМО, и одной из его задач является проверка образовательных программ. Каждая образовательная программа состоит из дисциплин, которые дают те или иные компетенции. Компетенция определяет одно требование к результату обучения.

Для удобства Максим собрал всю имеющуюся информацию в базу данных, которая имеет следующую структуру:

- Таблица competency хранит компетенции, которые может освоить студент в ходе изучения различных дисциплин:
  • competency_id — уникальный идентификатор компетенции;
  • code — уникальный код компетенции;
  • name — название компетенции;
  • description — описание компетенции;

- Таблица discipline хранит информацию о дисциплинах, которые студент может изучать при освоении образовательных программ:
  • discipline_id — уникальный идентификатор дисциплины;
  • code — уникальный код дисциплины;
  • name — название дисциплины;
  • description — описание дисциплины;

- Таблица program хранит информацию о программах, которые реализуются в университете:
  • program_id — уникальный идентификатор программы;
  • code — уникальный код программы;
  • name — название программы;
  • description — описание программы;

- Таблица discipline_competency хранит связку дисциплины и компетенции:
  • discipline_id — уникальный идентификатор дисциплины;
  • competency_id — уникальный идентификатор компетенции;
  • Таблица program_discipline хранит связку дисциплины и образовательной программы:
  • discipline_id — уникальный идентификатор дисциплины;
  • program_id — уникальный идентификатор дисциплины.

При этом гарантируется, что каждая связка дисциплины и компетенции, а также дисциплины и образовательной программы уникальна.

В целях оптимизации учебного процесса Максиму поручили определить количество различных пар дисциплин, которые дают как минимум одну одинаковую компетенцию и при этом реализуются в рамках образовательной программы «Микросервисные системы». При этом пары, которые отличаются только порядком элементов, считаются за одну. Если в образовательной программе есть три дисциплины, которые реализуют одну и ту же компетенцию, эти дисциплины образуют три пары (1 и 2, 2 и 3, 1 и 3).
Максим справился достаточно быстро и ушёл на обед. А сможете ли вы проверить, справился Максим с задачей правильно или нет? Определите, сколько пар дисциплин он должен был получить. В ответе введите целое положительное число.

Примечание: файл с базой данных доступен в прикреплённых материалах.

Пример ввода ответа: 17


time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя