fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. #define fi first
  5. #define se second
  6. #define siz(x) (int)(x.size())
  7. #define all(x) x.begin(), x.end()
  8. #define debug_arr(x,len) for(int _=1; _<=len; _++) cout<<x[_]<<" "; cout<<'\n';
  9. #define debug(x) cout<<'\n'<<#x<<": "<<x<<'\n';
  10. const int maxN = 1e5+5;
  11.  
  12. int n, m;
  13. string a[maxN];
  14. void solve()
  15. {
  16.  
  17. }
  18.  
  19. int32_t main()
  20. {
  21. ios_base::sync_with_stdio(0); cin.tie(0);
  22. int test=1, dem=0;
  23. cin>>test;
  24. while(test--)
  25. {
  26. cin>>n;
  27. for(int i=1; i<=n; i+=1) cin>>a[i];
  28. map<tuple<char, char, int>, int>mp;
  29. for(int i=1; i<=n; i+=1)
  30. {
  31. mp[{a[i][0], a[i].back(), siz(a[i])}]++;
  32. }
  33. cin>>m; cin.ignore();
  34. cout<<"Case "<<++dem<<":\n";
  35. for(int i=1; i<=m; i+=1)
  36. {
  37. string x; getline(cin, x);
  38. int ans = 1ll;
  39. for(int j=0; j<siz(x); j+=1)
  40. {
  41. int start = j;
  42. while(j<siz(x) && x[j] != ' ') j++;
  43. // cout<<x[start]<<" "<<x[j-1]<<'\n';
  44. ans = 1ll * ans * mp[{x[start], x[j-1], j-start}];
  45. }
  46. cout<<ans<<'\n';
  47. }
  48. solve();
  49. }
  50. }
Success #stdin #stdout 0.01s 6808KB
stdin
1
8
baggers
beggars
in
the
blowed
bowled
barn
bran
1
beggars bowled in the barn
stdout
Case 1:
8