Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
newyork7776
350 / 343 / 80
Регистрация: 21.05.2013
Сообщений: 1,311
Завершенные тесты: 1
#1

Что мне нужно сделать? - C++

11.12.2013, 19:21. Просмотров 225. Ответов 0
Метки нет (Все метки)

Есть сообщение, записанное в алфавите из N символов. Известно, что 1-й, 2-й, ..., N-й символы алфавита использованы в сообщении f1, f2, ..., fN раз. Его необходимо набрать на M-клавишной клавиатуре, используя способ набора, аналогичный используемому в мобильных телефонах.

На телефоне, клавише 2 сопоставлены буквы abc, клавише 3 — def, и т.д. Для набора текста телефон переводится в специальный режим, в котором одно нажатие на клавишу 2 порождает символ a, 2 подряд нажатия на 2 символ b, 3 подряд символ c; аналогично, одно нажатие 3 порождает d, 2 подряд e и т. д. Если же необходимо набрать 2 подряд буквы a, то нажимают клавишу 2, немного ждут и снова нажимают клавишу 2.

В нашем случае, символы с 1-ого по некоторый K1-ый должны соответствовать 1-ой клавише, с (K1 + 1)-ого по некоторый K2-ой — 2-ой клавише и т. д., до KM = N. Конкретные значения K1, K2, ..., KM - 1 не задаются — их, наоборот, нужно подобрать.

Напишите программу, которая будет искать минимальное необходимое количество нажатий на клавиши для набора указанного сообщения на указанной клавиатуре.

Входные данные
В первой строке содержатся два числа N и M, во второй — N чисел f1, f2, ..., fN — количества вхождений соответствующего символа. Числа внутри строк разделены одинарными пробелами. 2 ≤ M ≤ 50, 3 ≤ N ≤ 70, M < N, 1 ≤ fi ≤ 1000.

Выходные данные
Необходимо вывести единственное число — найденное минимальное количество нажатий на клавиши.

Примеры тестов
входные данные
5 3
3 2 5 7 1
выходные данные
21
Примечание
Значение 21 достигается при K1 = 2, K2 = 3 (1-й и 2-й символы сопоставить 1-й клавише, 3-й символ 2-й клавише, 4-й и 5-й символы 3-й клавише). Тогда количество нажатий будет

(3 × 1 + 2 × 2) + (5 × 1) + (7 × 1 + 1 × 2) = 21.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2013, 19:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что мне нужно сделать? (C++):

Что мне нужно дописать - C++
If (b == 0) Cout &lt;&lt; &quot;\n ошибка деления на ноль&quot; &gt;&gt; endl; Непонимаю что нужно дописать что бы программа не выдавала ошибку и...

Всё компилируется, выводится, но не то что мне нужно - C++
Помогите пожалуйста, не понимаю, где что нужно добавлять! Задание: 1)Известны данные по продаже компьютеров в течение недели. Найти...

Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для начала - C++
Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для...

Нужно сделать что бы давало рандомно числа и нужно написать ответ - C++
В командной строке. Тоесть примерно так: Запускаешь программу, показывает числа что выбрались рандомно : 15*3=? После этого...

Подскажите пожалуйста,что нужно сделать,что бы отображался русский язык?? - C++
Добрый вечер,формучани! После компиляции VS 12 у меня место русского языка показывает неизвестные иероглифы. Подскажите пожалуйста,что...

Что нужно сделать в этом задании? - C++
Доброго времени суток! Есть вот такая вот задача: declare @Table table( integer, float) insert into @Table(,) values(1,1) insert...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2013, 19:21
Привет! Вот еще темы с ответами:

Я не прошу писать мне код, я прошу подсказать мне, что за структура требуется в задании - C++
Написать программу для работы по запросам оператора с приоритетной очередью запросов. Куча отображается в память двоичным деревом. ...

Что нужно сделать, чтобы это скомпилировалось? - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; class Matrix { private: float m; public: ...

Что нужно сделать чтобы программа сразу не закрывалась - C++
Что нужно сделать чтобы программа сразу не закрывалась, #include &lt;vcl.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; ...

Не могу отладить программу, не понимаю, что нужно сделать - C++
Здравствуйте, срочно нужна помощь в дописании программы! Необходимо, чтобы программа запоминала введенный массив в пункте 1 меню, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru