Codeforces Round 187 (Div. 1) |
---|
Закончено |
Сережа нарисовал n точек на плоскости, точка номер i (1 ≤ i ≤ n) имеет координаты (i, 0). После этого Сережа подписал каждую точку маленькой или большой буквой латинского алфавита. Сережа очень не любит букву «x», поэтому он не использует ее, чтобы подписывать точки. Сережа считает, что точки подписаны красиво, если выполнены следующие условия:
Маленький Петя стер некоторые маленькие и все большие буквы, приписанные к точкам. Теперь Сереже интересно, сколько существует способов вернуть стертые буквы, чтобы точки были подписаны красиво.
В первой строке содержится целое число n (1 ≤ n ≤ 105) — количество точек. Во второй строке задана последовательность, состоящая из n маленьких латинских букв и знаков вопроса — последовательность букв, приписанных к точкам, в порядке от точек с меньшими абсциссами к точкам с большими. Знаки вопроса обозначают точки, у которых Петя стер подписанные буквы.
Гарантируется, что во входной строке отсутствует буква «x».
В единственную строку выведите остаток от деления ответа на задачу на число 4294967296. Если не существует ни одного способа вернуть стертые буквы, то выведите число 0.
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.
4
a???
50
4
abc?
0
6
abc???
1
Название |
---|