Advertisement
cosenza987

Untitled

Apr 12th, 2022
972
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int N = 1e6 + 7;
  6.  
  7. int trie[N][26], cnt[N][26], trien = 1;
  8.  
  9. int add(int u, char c) {
  10.     c -= 'a';
  11.     cnt[u][c]++;
  12.     if(trie[u][c]) {
  13.         return trie[u][c];
  14.     }
  15.     return trie[u][c] = ++trien;
  16. }
  17.  
  18. int main() {
  19.     ios_base::sync_with_stdio(false);
  20.     cin.tie(0);
  21.     unordered_map<string, int> mp;
  22.     int n;
  23.     cin >> n;
  24.     while(n--) {
  25.         string s;
  26.         cin >> s;
  27.         if(mp.count(s)) {
  28.             continue;
  29.         }
  30.         mp[s]++;
  31.         int u = 1;
  32.         for(auto c : s) {
  33.             u = add(u, c);
  34.         }
  35.     }
  36.     int q;
  37.     cin >> q;
  38.     while(q--) {
  39.         string s;
  40.         cin >> s;
  41.         int u = 1;
  42.         for(int i = 0; i < (int)s.size() - 1; i++) {
  43.             u = trie[u][s[i] - 'a'];
  44.         }
  45.         cout << cnt[u][s.back() - 'a'] << "\n";
  46.     }
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement