Language: C++

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<map>
#include<vector>
#include <set>
#define ll long long
using namespace std;
char c[200][100]= {"2019",
                   "4038",
                   "6057",
                   "8076",
                   "10095",
                   "12114",
                   "14133",
                   "16152",
                   "18171",
                   "20190",
                   "22209",
                   "24228",
                   "26247",
                   "28266",
                   "30285",
                   "32304",
                   "34323",
                   "36342",
                   "38361",
                   "40380",
                   "42399",
                   "44418",
                   "46437",
                   "48456",
                   "50475",
                   "52494",
                   "54513",
                   "56532",
                   "58551",
                   "60570",
                   "62589",
                   "64608",
                   "66627",
                   "68646",
                   "70665",
                   "72684",
                   "74703",
                   "76722",
                   "78741",
                   "80760",
                   "82779",
                   "84798",
                   "86817",
                   "88836",
                   "90855",
                   "92874",
                   "94893",
                   "96912",
                   "98931",
                   "100950",
                   "102969",
                   "104988",
                   "109026",
                   "111045",
                   "113064",
                   "115083",
                   "117102",
                   "119121",
                   "121140",
                   "123159",
                   "125178",
                   "127197",
                   "129216",
                   "131235",
                   "133254",
                   "135273",
                   "137292",
                   "139311",
                   "141330",
                   "143349",
                   "145368",
                   "147387",
                   "149406",
                   "151425",
                   "153444",
                   "155463",
                   "157482",
                   "159501",
                   "161520",
                   "163539",
                   "165558",
                   "167577",
                   "169596",
                   "171615",
                   "173634",
                   "175653",
                   "177672",
                   "179691",
                   "181710",
                   "183729",
                   "185748",
                   "187767",
                   "189786",
                   "191805",
                   "193824",
                   "195843",
                   "197862",
                   "199881",
                  };
char s[200010];
int lenW,lenT;
int next[1010];
void getnext(int lenW,int k)
{
    int i=0,j=-1;
    next[i]=-1;
    while(i<lenW)
    {
        if(j==-1||c[k][i]==c[k][j])
        {
            next[++i]=++j;
        }
        else
            j=next[j];
    }
}

int kmp(int pos,int lenW,int lenT,int k)
{
    int i=pos,j=0,ans=0;
    while(i<lenT)
    {
        if(s[i]==c[k][j]||j==-1)
            ++i,++j;
        else
            j=next[j];
        if(j==lenW)
        {
            ans++;
            j=next[j-1];
            i--;
        }
    }
    return ans;
}

int main()
{
    int ans=0;
    scanf("%s",s);
    lenT=strlen(s);
    for(int i=0; i<98; i++)
    {
        int lenW=strlen(c[i]);
        //cout<<lenW;
        getnext(lenW,i);
        ans+=kmp(0,lenW,lenT,i);
    }
    cout<<ans<<endl;
    return 0;
}


Compiler output:
a.cc: In function 'void getnext(int, int)':
a.cc:118:5: error: reference to 'next' is ambiguous
  118 |     next[i]=-1;
      |     ^~~~
In file included from /usr/include/c++/14/string:47,
                 from /usr/include/c++/14/bits/locale_classes.h:40,
                 from /usr/include/c++/14/bits/ios_base.h:41,
                 from /usr/include/c++/14/ios:44,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_iterator_base_funcs.h:232:5: note: candidates are: 'template<class _InputIterator> constexpr _InputIterator std::next(_InputIterator, typename iterator_traits<_Iter>::difference_type)'
  232 |     next(_InputIterator __x, typename
      |     ^~~~
a.cc:114:5: note:                 'int next [1010]'
  114 | int next[1010];
      |     ^~~~
a.cc:123:13: error: reference to 'next' is ambiguous
  123 |             next[++i]=++j;
      |             ^~~~
/usr/include/c++/14/bits/stl_iterator_base_funcs.h:232:5: note: candidates are: 'template<class _InputIterator> constexpr _InputIterator std::next(_InputIterator, typename iterator_traits<_Iter>::difference_type)'
  232 |     next(_InputIterator __x, typename
      |     ^~~~
a.cc:114:5: note:                 'int next [1010]'
  114 | int next[1010];
      |     ^~~~
a.cc:126:15: error: reference to 'next' is ambiguous
  126 |             j=next[j];
      |               ^~~~
/usr/include/c++/14/bits/stl_iterator_base_funcs.h:232:5: note: candidates are: 'template<class _InputIterator> constexpr _InputIterator std::next(_InputIterator, typename iterator_traits<_Iter>::difference_type)'
  232 |     next(_InputIterator __x, typename
      |     ^~~~
a.cc:114:5: note:                 'int next [1010]'
  114 | int next[1010];
      |     ^~~~
a.cc: In function 'int kmp(int, int, int, int)':
a.cc:138:15: error: reference to 'next' is ambiguous
  138 |             j=next[j];
      |               ^~~~
/usr/include/c++/14/bits/stl_iterator_base_funcs.h:232:5: note: candidates are: 'template<class _InputIterator> constexpr _InputIterator std::next(_InputIterator, typename iterator_traits<_Iter>::difference_type)'
  232 |     next(_InputIterator __x, typename
      |     ^~~~
a.cc:114:5: note:                 'int next [1010]'
  114 | int next[1010];
      |     ^~~~
a.cc:142:15: error: reference to 'next' is ambiguous
  142 |             j=next[j-1];
      |               ^~~~
/usr/include/c++/14/bits/stl_iterator_base_funcs.h:232:5: note: candidates are: 'template<class _InputIterator> constexpr _InputIterator std::next(_InputIterator, typename iterator_traits<_Iter>::difference_type)'
  232 |     next(_InputIterator __x, typename
      |     ^~~~
a.cc:114:5: note:                 'int next [1010]'
  114 | int next[1010];
      |     ^~~~