fork download
  1. #include<iostream>
  2. #include<string>
  3. #include<vector>
  4. #include<map>
  5. #include<algorithm>
  6. #include<queue>
  7. #include<fstream>
  8. #include<bitset>
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13. string t, p;
  14. int q;
  15. cin >> t >> p >> q;
  16.  
  17. vector<int> sum1(t.size(), 0);
  18. for (int i = 0; i <= t.size()-p.size(); i++)
  19. {
  20. if (p == t.substr(i, p.size()))
  21. sum1[i+p.size()-1]++;
  22. }
  23. for (int i = 1; i < sum1.size(); i++)
  24. sum1[i] += sum1[i - 1];
  25.  
  26. vector<int> sum2(t.size(), 0);
  27. for (int i = 0; i <= t.size() - p.size(); i++)
  28. {
  29. if (p == t.substr(i, p.size()))
  30. sum2[i]++;
  31. }
  32. for (int i = 1; i < sum2.size(); i++)
  33. sum2[i] += sum2[i - 1];
  34.  
  35. while (q--)
  36. {
  37. int a, b;
  38. cin >> a >> b;
  39. a--;
  40. b--;
  41. int ans;
  42. if (a != 0)
  43. ans = sum1[b] - sum2[a - 1];
  44. else
  45. ans = sum1[b];
  46. if (ans < 0)
  47. ans = 0;
  48. cout << ans << endl;
  49. }
  50.  
  51. return 0;
  52. }
Runtime error #stdin #stdout 0s 4572KB
stdin
Standard input is empty
stdout
Standard output is empty