Задача
Маленькие Дима и Петя хотят организовать соревнование. Их маленькие друзья выслали им несколько задач. Теперь Дима и Петя должны выбрать несколько задач для соревнования. Поскольку они еще маленькие, то не могут оценить качество задач, однако они знают что в хорошем контесте заглавия первой задачи начинаются с буквы $ A $ , заглавия второй задачи — с буквы $ B $ и так далее.
Заданы заглавия предложенных задач. Помогите братьям определить наибольшее количество задач в хорошем соревновании, которое они смогут организовать.
Входные данные
Первая строка содержит одно число $ n $ — количество предложенных задач, полученных маленькими братьями [latex](1 \leqslant n \leqslant 100)[/latex]
Следующие $ n $ строк содержат заглавия предложенных задач, по одной в строке. Длина каждого заглавия не превосходит $ 30 $ символов. Каждое заглавие начинается с заглавной буквы и содержит буквы только латинского алфавита, цифры и символы подчеркивания.
Выходные данные
Вывести одно число — наибольшее возможное количество задач в хорошем соревновании. Если хорошего соревнования устроить нельзя, вывести $0$.
Тесты
№ | Входные данные | Выходные данные |
1. | 10 Use Algorithm_of Branch Chill Cout_Hello_World General Duck Ping_pong Pong_ping End |
5 |
2. | 4 Spasibo_tebe John_von_Neumann Za Nuli_i_edunichki |
0 |
3. | 6 All Sample Simple Games_of_mind Bee |
2 |
4. | 7 Andreev_Borys Borys_Andreev C_P_P Demo_version E_Olymp Fraction General |
7 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> using namespace std; int m[26]; int main() { int n; cin >> n; string s; for (int j = 0; j <= n; j++) { getline(cin, s); m[int(s[0] - 'A')]++; // от первой буквы названий задач отнимаем А, чтобы получить её номер в алфавите } int k = 0; for (int i = 0; i < 26; i++) { if (m[i] != 0) k++; if (m[i] == 0) break; } cout << k; return 0; } |
Объяснение
Нам нужно вводить количество предложенных задач и их названия с клавиатуры и вывести наибольшее количество заглавных букв этих задач, которые идут в алфавитном порядке.
Алгоритм решения задачи:
- Создаем массив.
- Читаем строку циклом и определяем первую букву.
- Кладем первую букву в массив, если разница отлична от нуля.
Кириллицу из ссылки надо убрать. Числа в промежутках стоить включить в latex, вместо выделения жирным шрифтом. Заголовки нужны обычные, не «стильные» . Объяснение описывает код, но в окне кода итак есть подобного рода пояснения. Насколько это приемлемо решать не мне, но я бы текст изменил.
Спасибо, Никита, исправил.
Нет, не исправил.
Кроме того
— ссылка на ideone «битая»;
— разберитесь, где следует ставить пробелы (на Википедии есть хорошая статья на эту тему);
— сделайте в условии задачи знаки неравенств такими, как они выглядят в школьных учебниках;
— войдите в текстовый режим редактирования и удалите span style=»color: #ff9900″ и прочее, чего не понимаете зачем оно там;
— разберитесь с написанием «неизвестно»;
— нет смысла писать в информации о себе возраст — эта характеристика некоторое время меняется;
— поработайте, пожалуйста, над текстом пояснения.
Особое внимание стоит уделить последнему вопросу. Представьте, что я дам этот текст пояснения на экзамене Вашему лучшему другу. Он решит задачу?
Спасибо, исправил.
Пока не все
Спасибо большое, все исправил.
Хорошо.
Даю следующую задачу — вдруг будет время продолжить. Только не в ущерб сессии.
Фуф, спасибо большое, с опаской проверял свою задачу, и тут такой сюрприз. Постараюсь сделать, если что — доделаю в армии.