#include #include #include #include using namespace std; const int BUF = 50005; const int WORD = 5005; class Sorter{ public: int *v, h; Sorter(){} Sorter(int *v, int h): v(v), h(h){} bool operator()(int a, int b){ if(a==b) return false; if(v[a]!=v[b]) return v[a] construct(char *txt){ int N = strlen(txt); static int V[BUF], pos[BUF], buf[BUF]; txt[N++] = '\0'; for(int i=0;i ret; for(int i=0;i> txt; cin >> nWord; for (int i = 0; i < nWord; ++i) { cin >> word[i]; } } void work() { vector sarray = construct(txt); int cnt = 0; for (int i = 0; i < nWord; ++i) { vector::iterator bgn = lower_bound(sarray.begin(), sarray.end(), word[i]); ++word[i][word[i].size() - 1]; vector::iterator end = lower_bound(sarray.begin(), sarray.end(), word[i]); cnt += end - bgn; } cout << cnt << endl; } int main() { read(); work(); return 0; }