match.cpp: In function 'void solve(int, int)':
match.cpp:9:44: warning: array subscript has type 'char' [-Wchar-subscripts]
auto it = upper_bound(p[s[le - 1]][str[le]].begin(), p[s[le - 1]][str[le]].end(), ri);
^
match.cpp:9:75: warning: array subscript has type 'char' [-Wchar-subscripts]
auto it = upper_bound(p[s[le - 1]][str[le]].begin(), p[s[le - 1]][str[le]].end(), ri);
^
match.cpp:10:32: warning: array subscript has type 'char' [-Wchar-subscripts]
if (it == p[s[le - 1]][str[le]].begin())while (true);
^
match.cpp: In function 'int main()':
match.cpp:30:21: warning: array subscript has type 'char' [-Wchar-subscripts]
p[st.top()][str[i]].push_back(i);
^
match.cpp:19:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%s", str + 1);
~~~~~^~~~~~~~~~~~~~~