решить задачу по информатике на с++
Характеристика генома
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
standard input
standard output
2 секунды
64 мегабайта
Группа британских ученых занимается изучением геномов различных существ.
Будем считать, что геном существа является строкой длины n из символов A, C, G, T.
Ученые пришли к выводу, что по количеству вхождений каждого символа в геном
можно определять некоторые его свойства. Дан геном s. Для каждого символа,
встречающегося в нем, выведите количество его вхождений в s. Символы нужно
выводить в алфавитном порядке.
Формат входных данных
В первой строке дано целое число n (4 ≤ n ≤ 105
) — длина генома.
Во второй строке дана строка s длины n, состоящая из символов A, C, G, T.
Формат выходных данных
Для каждого символа c, встречающегося в s, выведите строку c k, где k — коли-
чество этих вхождений. Символы c должны идти в алфавитном порядке. Обратите
внимание, что выводить нужно только те символы, для которых k > 0.
Задача заключается в том, чтобы посчитать количество вхождений каждого символа в заданную строку и вывести результат в алфавитном порядке. Вам необходимо написать программу, которая будет считывать длину генома и саму строку из символов A, C, G, T, а затем вывести количество вхождений каждого символа в заданном порядке.
Для начала, вам нужно знать, что подразумевается под алфавитным порядком. В данном случае, символы нужно упорядочить в алфавитном порядке по возрастанию их значений в таблице символов ASCII. То есть, символ "A" будет иметь меньшее значение, чем символ "C", символ "C" будет иметь меньшее значение, чем символ "G", и так далее.
Для решения данной задачи на C++, вам понадобится использовать массив или контейнер, чтобы хранить количество вхождений каждого символа. Для удобства работы с символами и их вхождениями, можно воспользоваться стандартным контейнером map, в котором символ будет служить ключом, а количество его вхождений - значением.
Вот пошаговый алгоритм решения вашей задачи:
1. Объявите переменные для хранения длины генома и строки из символов.
2. Считайте длину генома из стандартного ввода и сохраните в соответствующую переменную.
3. Считайте строку генома из стандартного ввода и сохраните в строковую переменную.
4. Объявите и инициализируйте контейнер map, в котором ключом будет символ, а значением - количество его вхождений.
5. В цикле пройдитесь по каждому символу в строке генома.
5.1 Если символ уже присутствует в контейнере, увеличьте его значение на 1.
5.2 Если символ отсутствует в контейнере, добавьте его со значением 1.
6. Пройдитесь по контейнеру map, используя итератор.
6.1 Если значение вхождений символа больше нуля, выведите символ и его количество на стандартный вывод в алфавитном порядке.
Программа на C++ для решения данной задачи может выглядеть следующим образом:
```c++
#include
#include