В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
glushkovanastya
glushkovanastya
21.02.2020 11:58 •  Информатика

В. "гвоздики" на прямой дощечке вбиты гвоздики. любые два гвоздика можно соединить ниточкой. требуется соединить какие-то пары гвоздиков ниточками так, чтобы к каждому гвоздику была привязана хотя бы одна ниточка, а суммарная длина всех ниточек была минимальна. формат входного файла в первой строке входного файла input. in записано число n – количество гвоздиков (2 ≤ n ≤ 100). в следующей строке записано n чисел -координаты всех гвоздиков (неотрицательные целые числа,не превосходящие 10000). формат выходного файла в выходной файл output. out нужно вывести единственное число -минимальную суммарную длину всех ниточек. примеры: input. in output. out 5 4 10 0 12 2 6

Показать ответ
Ответ:
TheAgentSquid
TheAgentSquid
23.06.2020 09:28
//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
begin
    var n := ReadInteger('n =');
    var a := ReadArrInteger('Массив', n);
    a.Sort;
//    Println(a);
    
    var b := ArrFill(n + 1, 0);
    b[0] := 0;   
    b[1] := Maxint;   
    for var i := 2 to n do
        b[i] := min(b[i - 1], b[i - 2]) + abs(a[i - 1] - a[i - 2]);  
    
//    Println(b);
    WriteLn(b[n]);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота