Задача про забор Поликарпа - C#

Узнай цену своей работы

Формулировка задачи:

Перед домом Поликарпа находится забор, который состоит из n одинаковых по ширине досок, расположенных одна за другой слева направо. Высота i-ой доски составляет hi метров, разные доски могут иметь различные высоты. Поликарп приобрел рояль и теперь ищет наилучший способ занести рояль в свой дом. Для того, чтобы осуществить задуманное, ему придется выломать ровно k подряд идущих досок в заборе. Так как высокие доски выламывать сложнее, Поликарп хочет найти такие k последовательных досок, что сумма их высот минимальна. Напишите программу, которая найдет номера k последовательных досок с наименьшей суммой высот. Обратите внимание, забор не окружает дом Поликарпа, а находится перед ним (другими словами, забор не зациклен). Формат ввода В первой строке входных данных содержатся целые числа n и k () — количество досок в заборе и ширина проема для рояля. Следующие n строк содержат последовательность целых чисел h1, h2, ..., hn (), где hi — высота i-ой доски забора. Формат вывода Выведите такое j, что сумма высот досок j, j + 1, ..., j + k - 1 — наименьшая возможная. Если таких j несколько, то выведите любое из них.

Решение задачи: «Задача про забор Поликарпа»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Text;
 
namespace ConsoleApplication20 {
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Количество досок для выламывания - 0. Несем рояль вокруг забора");
            Console.ReadLine();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5