Алгоритм вирішення задачі
Запускається функція розрахунку часу.
Вводяться данні (Табл.1)
Таблиця 1
Таблиця змінних
-
Данні
Тип данних
Описання
n
int const
Максимальна кількість людей, що можуть прийти на олімпіаду
N
int
Кількість людей, що прибули на олімпіаду
G[n][n]
int
Квадратна матриця суміжності G
i, j, k
int
Змінні для циклів
V[n]
int
Вектор досягнень
kol
int
Кількість елементів в у векторі досягнень V[n]
marker
int
Помітка, що приймає значення 1 або 0 в залежності від того була вершина в V[n] чи ні
Відкривається файл fs1.txt й опустошається.
Файл fs1.txt перевіряється на помилки: можливо файл відсутній або просто закритий для читання інформації. Якщо файл не пройшов перевірку на помилки – виводиться «Error open file.» й програма завершується. Якщо не виявляються помилки - програма переходить до наступного кроку.
Якщо файл fs2.txt – існує, то він перезапускається й опустошається, якщо ж – ні, то створюється автоматично програмою.
Файл fs2.txt перевіряється на помилки: можливо файл просто закритий для запису інформації. Якщо файл не пройшов перевірку на помилки – виводиться «Error open file.» й програма завершується. Якщо не виявляються помилки - програма переходить до наступного кроку.
Зчитується інформація з файлу fs1.txt, що відкритий для читання: N – кількість прибувших на олімпіаду, а також кожен елемент матриці суміжності G[i][j].
Файл, що був відкритий для читання закривається, так як потрібно інформація з нього дісталася і він нам більше не потрібен.
Кожен елемент вектора V[j] досягнень приймається за 0, а перший елемент вектора – за першу вершину. Кількість елементів у векторі досягнень приймає значення «1».
Продивляємось елементи в рядку з номером 1 і знаходимо одиниці - тобто вершини, суміжні з першою вершиною (люди знайомі з людиною під номером один), при знаходженні пар ставиться позначка marker=0.
Передивляємося елементи вектора досягнень, якщо людина за певним номером там присутня, то ставиться marker=1.
Якщо позначка marker=0, тобто людина ще не присутня у векторі досягнень, то заносимо її туди, а кількіть «kol» елементів в векторі збільшується на 1.
Після перегляду всіх вершин, дивимося на кількість елементів у векторі досягнень, якщо вона буде дорівнювати заданій цифрі N – кількості прибувших на олімпіаду, то у файл fs2.txt заноситься інформація у вигляді слова “Yes”. Якщо ж кількість не дорівнює заданому числу, то видається інформація “Nо”.
Час початку й кінця роботи програми виводиться у цей же файл fs2.txt.
Закривається файл fs2.txt.
Кінець програми.
