Максим работает в Университете ИТМО, и одной из его задач является проверка образовательных программ. Каждая образовательная программа состоит из дисциплин, которые дают те или иные компетенции. Компетенция определяет одно требование к результату обучения.
Для удобства Максим собрал всю имеющуюся информацию в базу данных, которая имеет следующую структуру:
- Таблица 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