5315 for(
int i = 0; i < q; i++) {
5326 for(
int i = 0; i + m <= n; i++) {
5327 string str = s.substr(i, m);
5330 sub_start.insert(i);
5331 sub_end.insert(i + m - 1);
5334 vector sub_end_count(n + 1, 0);
5335 vector sub_start_count(n + 1, 0);
5337 for(
int i = 0; i < n + 1; i++) {
5338 if(sub_end.contains(i)) {
5341 sub_end_count[i] = current;
5344 for(
int i = n; i >= 0; i--) {
5345 if(sub_start.contains(i)) {
5348 sub_start_count[i] = current;
5350 for(
int i = 0; i < q; i++) {
5354 int ans = sub_end_count[r - 1] - (sub_count - sub_start_count[l - 1]);
5355 cout << max(ans, 0) << endl;