Count occurrences of substring X before every occurrence of substring Y in a given string

Count occurrences of substring X before every occurrence of substring Y in a given stringGiven three strings S, X, and Y consisting of N, A, and B characters respectively, the task is to find the number of occurrences of the substring X before every occurrence of the substring Y in the given string S.Examples:Input S = ”abcdefdefabc”, X = ”def”, Y = ”abc”Output: 0 2Explanation:First occurence of Y(= “abc”): No of occurrences of X(= “def”) = 0.Second occurrence of Y: No of occurrences of X = 0.Input: S = ”accccbbbbbbaaa”, X = ”a”, Y = ”b”Output: 0 6 6 6Approach: Follow the steps below to solve the problem:Initialize a variable, say count, that stores the total number occurrences of X.Traverse the given string S and perform the following steps:If the substring over the range [i, B] is equal to Y, then increment count by 1.If the substring over the range [i, A] is equal to X, then print the value of count as the resultant count of the string Y before the current occurrence of the string X.Below is the implementation of the above approach:C++  #include using namespace std;  void countOccurrences(string S,                      string X,                      string Y){            int count = 0;              int N = S.length(), A = X.length();    int B = Y.length();          for (int i = 0; i < N; i++) {                                  if (S.substr(i, B) == Y)            count++;                          if (S.substr(i, A) == X)            cout