eolymp
bolt
Try our new interface for solving problems
Problems

Dima and strings

Dima and strings

Мальчик Дима изучает алгоритмы поиска вхождения одной строки в другую. Более формально --- он хочет найти пары индексов (\textbf{i}, \textbf{j}) такие, что подстрока строки \textbf{t} начинающаяся с символа с индексом \textbf{i} и заканчивающаяся символом с индексом \textbf{j} совпадала со строкой \textbf{s}. Дима пытается придумать новый быстрый алгоритм, решающий данную задачу. Основная идея алгоритма --- провести сравнение лишь некоторых символов, при этом значительно уменьшив количество возможных подходящих пар индексов. Он уже провел несколько сравнений и теперь хочет узнать --- сколько еще осталось пар индексов, являющихся ответом на задачу и не противоречащих полученным им данным. Помните, Дима еще маленький мальчик, так что мог ошибиться в измерениях. Если входные данные противоречивы выведите \textbf{0}. Алфавит, которым пользуется Дима, содержит ровно \textbf{10^100} букв. \InputFile Первая строка содержит три целых числа \textbf{n}, \textbf{l_s}, \textbf{l_t} (\textbf{0} ≤ \textbf{n} ≤ \textbf{100}, \textbf{1} ≤ \textbf{l_s} ≤ \textbf{l_t} ≤ \textbf{10^9}). \textbf{n} --- это количество проведенных сравнений, \textbf{l_s} --- длина строки \textbf{s} и \textbf{l_t} --- длина строки \textbf{t}. Следующие \textbf{n} строк содержат информацию об одном сравнении. Каждая строка содержит число \textbf{i}, \textbf{1} ≤ \textbf{i} ≤ \textbf{l_s}, пробел, символ "\textbf{=}" или "\textbf{!}", пробел и число \textbf{j}, \textbf{1} ≤ \textbf{j} ≤ \textbf{l_t}. Если использован символ "\textbf{=}", то \textbf{s_i} = \textbf{t_j}, а если символ "\textbf{!}", то \textbf{s_i} ≠ \textbf{t_j}. \OutputFile Одно число --- ответ на вопрос Димы.
Time limit 1 second
Memory limit 256 MiB
Input example #1
6 3 10
1 ! 1
1 = 10
2 = 10
3 = 10
1 ! 5
1 ! 8
Output example #1
1
Author Egor Kulikov
Source Winter School Kharkov 2012