Олимпиадный тренинг

Задача . E. Е-mail адреса


Задача

Темы: реализация *1900

Один из важнейших продуктов компании R1 — популярный почтовый сервис @r1.com. Ежедневно почтовые ящики R1 принимают и отправляют миллионы писем.

Сегодня в интернет-новостях прогремела ужасная новость. База данных R1 «упала», почти никакие данные не удалось сохранить, кроме одной большой строки, в которой по предположению разработчиков находятся письма некоторых пользователей почты R1. Восстановление писем — весьма трудоемкий плохо-автоматизируемый процесс. Поэтому перед запуском этого процесса было решено оценить, насколько оправдано восстановление. А именно, нужно посчитать сколько различных подстрок сохраненной строки образуют корректные e-mail адреса.

Будем считать корректными только e-mail адреса, которые удовлетворяют следующим правилам:

  • адрес должен начинаться с непустой последовательности букв, цифр, символов «_», которая должна начинаться с буквы;
  • затем должен идти символ «@»;
  • затем должна идти непустая последовательность букв или цифр;
  • затем должен идти символ «.»;
  • заканчиваться адрес должен непустой последовательностью букв.

Вам опять повезло, и задание доверили вам! Обратите внимание, что подстрока — это несколько подряд идущих в строке символов. Две подстроки: состоящая из символов строки с номерами l1, l1 + 1, l1 + 2, ..., r1 и состоящая из символов строки с номерами l2, l2 + 1, l2 + 2, ..., r2, считаются различными, если l1 ≠ l2 или r1 ≠ r2.

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

В первой и единственной строке записана последовательность символов s1s2... sn (1 ≤ n ≤ 106) — сохраненная строка. Гарантируется, что заданная строка содержит только маленькие английские буквы, цифры и символы «.», «_», «@».

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

Выведите в единственной строке количество подстрок, которые являются корректными e-mail адресами.

Примечание

В первом тестовом примере все подстроки, являющиеся корректными e-mail адресами, начинаются в одной из букв слова agapov, а заканчиваются в одной из букв слова com.

Во втором тестовом примере обратите внимание, что e-mail [email protected] считается в ответе два раза. Заметьте, что в этом примере вхождения e-mail перекрываются внутри строки.


Примеры
Входные данныеВыходные данные
1 [email protected]
18
2 [email protected]
@
[email protected]
8
3 [email protected]
1
4 .asd123__..@
0

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя