Школа программиста
Резервная копия - VPS Hoster 

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Обыкновенная задача про строки

(Время: 2 сек. Память: 32 Мб Сложность: 78%)

Назовем две строки s и t эквивалентными, если для любой строки u длины 2, количество вхождений u в s совпадает с количеством вхождением u в t. Таким образом, строки «aaaba», «abaaa» и «baaab» попарно эквивалентны между собой (строка «aa» входит два раза, строка «ab» один раз, строка «ba» один раз, строка «bb» не входит как подстрока), а строки «abb» и «bba» – нет.

В этой задаче вам будут даны Q строк, состоящих из символов «a», «b» и «c», для каждой из которых надо будет посчитать количество эквивалентных им непустых строк, также состоящих из символов «a», «b» и «c». Так как это количество может быть очень большим, то надо вывести его остаток при делении на 109+7.

Входные данные

В первой строке входного файла INPUT.TXT дано число G – номер подзадачи, к которой относится текущий тест. Для теста из примера G = 0.

На второй строке дано число Q (1 ≤ Q ≤ 105), затем следуют Q строк, состоящих из символов «a», «b» и «c». Суммарная длина строк не превышает 106.

Выходные данные

В выходной файл OUTPUT.TXT требуется вывести Q целых чисел – для каждой строки необходимо вывести количество эквивалентных ей по модулю 109+7.

Пример

INPUT.TXTOUTPUT.TXT
10
4
abaa
abca
ccbca
bacc
3
3
2
1

Пояснение к примеру

Строке «abaa» эквивалентны строки «abaa», «aaba» и «baab».

Строке «abca» эквивалентны строки «abca», «bcab» и «cabc».

Строке «ccbca» эквивалентны строки «ccbca» и «cbcca».

Строке «bacc» эквивалентна только строка «bacc».


Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 ЕГЭ по информатике
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2006 / 2007
 2007 / 2008
 2008 / 2009
 2009 / 2010
 2010 / 2011
 2011 / 2012
 2012 / 2013
 2013 / 2014
 2014 / 2015
 2015 / 2016
 2016 / 2017
 2017 / 2018
 2018 / 2019
 2019 / 2020
 2020 / 2021
 2021 / 2022
 2022 / 2023
 2023 / 2024
 A. Разделение прямоугольника
 B. Произведение Фибоначчи
 C. Робот-пылесос
 D. Разноцветные точки
 E. Метрострой
 F. Красивые последовательности
 G. Камни
 H. Обыкновенная задача про строки

Красноярский краевой Дворец пионеров, (c)2006 - 2024, ICQ: 151483, E-mail: admin@acmp.ru