Форум программистов, компьютерный форум CyberForum.ru

Вывести слово, которое можно выложить из данного количества палочек - C++

Восстановить пароль Регистрация
 
MihaniX
 Аватар для MihaniX
134 / 44 / 1
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
25.05.2014, 21:38     Вывести слово, которое можно выложить из данного количества палочек #1
256 мегабайт, 2 секунды

У пятиклассника Димы есть N счётных палочек, и он очень любит выкладывать из этих палочек слова.

Однажды Дима пришёл из школы, где на уроке английского языка узнал написание нескольких новых английских слов. Он хотел бы выложить каждое из этих слов из счётных палочек, но ему надо ещё готовить уроки на завтра. Поэтому Дима решил выбрать одно слово и выложить только его. Слово он хочет выбрать так, чтобы его можно было выложить полностью и счётных палочек после этого осталось как можно меньше.

Чтобы выложить некоторое слово, Дима всегда пользуется своим любимым числом K и следующими простыми правилами:

1) слово выкладывается побуквенно слева направо

2) пусть i — номер выкладываемой буквы в английском алфавите('a', 'A' — 1, 'b', 'B' — 2, 'c', 'C' — 3, и т.д.); если i ≤ K, Дима записывает на бумаге число i; если i > K — записывает остаток от деления i на K

3) если записанное число строго меньше 3, Дима исправляет его на 3

4) если текущая буква является заглавной, т.е. буквой верхнего регистра, то записанное число умножается на 2, иначе число не изменяется

5) буква выкладывается из полученного числа счётных палочек.

Если для некоторой буквы слова получается число, строго большее количества оставшихся у Димы палочек, то выложить полностью это слово из N палочек невозможно.

Помогите Диме определить, какое слово из его набора ему следует выкладывать.

Формат ввода

В первой строке входного файла записано единственное целое число N (1 ≤ N ≤ 10000) — количество счётных палочек у Димы. Во второй строке записано единственное целое число K (1 ≤ K ≤ 26) — любимое число Димы. В третье строке записано единственное целое число W (1 ≤ W ≤ 50) — количество новых слов. Далее в W строках записано по одному слову. Все слова содержат от 1 до 50 букв. Каждая буква из интервала 'a'–'z' или из интервала 'A'–'Z'.

Формат вывода

В единственную строку выходного файла выведите слово, которое можно выложить из данного количества палочек, причём оставшееся после выкладывания количество палочек должно быть минимальным. Если ни одно из слов нельзя выложить из данного количества палочек, выведите “-1” (без кавычек). Если таких слов несколько, выведите то из них, которое следует раньше других в лексикографическом порядке.

Добавлено через 40 минут
апп

Добавлено через 6 часов 34 минуты
up!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2014, 21:38     Вывести слово, которое можно выложить из данного количества палочек
Посмотрите здесь:

C++ Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово.
Строки. Вывести на печать то слово этой строки, которое по алфавиту предшествует всем другим C++
Найти символ первой строки, который первым не совпал с одним из символов второй строки. Вывести слово, в которое входит этот символ C++
C++ Списки и файлы. Вывести на экран только предложения, содержащие слово которое ввели с клавиатуры (найти ошибку в коде)
Задача со строками (вывести слово, которое содержит ровно три буквы "и") C++
Вывести наименьшее натуральное число, которое можно представить двумя разными способами в виде суммы кубов двух натуральных чисел C++
C++ Задан текст. Вывести первое слово, которое имеет заданную длину
Сформировать из данного числа другое число, которое содержит только четные цифры (рекурсия) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 22:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru