Построим граф исходя из данных, подпишем длину каждой дороги и найдем кратчайший путь(выделено красным)
Відповідь:
using System;
public class Date
{
private int day;
private int month;
private int year;
public Date(int day, int month, int year)
{
SetDate(day, month, year);
}
public void SetDate(int day, int month, int year)
{
if (!IsValidDate(day, month, year))
{
throw new ArgumentException("Недійсна дата");
}
this.day = day;
this.month = month;
this.year = year;
}
public void ChangeDate(int days, int months, int years)
{
int newDay = day + days;
int newMonth = month + months;
int newYear = year + years;
SetDate(newDay, newMonth, newYear);
}
private bool IsValidDate(int day, int month, int year)
{
// Виконати перевірки на допустимі значення дня, місяця і року
// Наприклад, перевірити, що день лежить в межах 1-31, місяць в межах 1-12 і рік не від'ємний
// Повернути true, якщо дата дійсна, інакше - false
}
}
Цей клас Date має конструктор для ініціалізації дати і метод SetDate для зміни дати з перевіркою її допустимості. Якщо введені значення недійсні, генерується виключення ArgumentException.
Також в класі є метод ChangeDate, який дозволяє змінити дату на задану кількість днів, місяців і років. Цей метод також використовує метод SetDate для перевірки та встановлення нової дати.
Будь ласка, зверніть увагу, що код потребує додаткової роботи, щоб виконувати всі необхідні перевірки на допустимі значення дати. Ви повинні додати відповідний код в метод IsValidDate для виконання цих перевірок.
Для начала стоит рассмотреть из какого пункта куда можно попасть:
из А в B и Сиз B в D и Еиз С в Dиз D в EПостроим маршруты:
A—B—D—E 9 км.A-B-E 9 кмA-C-D-E 8 кмВ итоге самый короткий маршрут (A—C—D—E) длиной 8 км