Advertisement
Mehulcoder

CureFit1

Oct 5th, 2020 (edited)
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. /*
  2. Author: Mehul Chaturvedi
  3. */
  4.  
  5. #include <bits/stdc++.h>
  6. using namespace std;
  7.  
  8. using ll = long long;
  9. using ld = long double;
  10. using pll = pair<ll, ll>;
  11.  
  12. #define mp make_pair
  13. #define all(x) (x).begin(), (x).end()
  14. #define f first
  15. #define s second
  16. #define vll vector<long long>
  17. #define vvll vector<vector<ll>>
  18. #define vset(v, n, val) v.clear(); v.resize(n, val)
  19. #define INF 4557430888798830399ll
  20. #define fr(i, a, b) for (int i = (a), _b = (b); i <= _b; i++)
  21. #define rep(i, n) for (int i = 0, _n = (n); i < _n; i++)
  22. #define repr(i, n) for (int i = n; i >= 0; i--)
  23. #define frr(i, a, b) for (int i = (a), _b = (b); i >= _b; i--)
  24. #define trav(a, x) for(auto& a : x)
  25. #define fil(ar, val) memset(ar, val, sizeof(ar))
  26. const ll MOD = 1e9 + 7;
  27.  
  28. vll rankk;
  29. string s;
  30. ll n;
  31. void solve() {
  32.     vset(rankk, 26, 0);
  33.     rep(i, 26) cin >> rankk[i];
  34.  
  35.     cin >> s;
  36.     n = s.size();
  37.  
  38.     vll arr(n, 0);
  39.     vll pre(n, 0);
  40.     map<pll, ll> m;
  41.     ll ans = 0ll;
  42.     rep(i, n) {
  43.         arr[i] = rankk[s[i] - 'a'];
  44.         pre[i] = arr[i];
  45.         if (i != 0) pre[i] += pre[i - 1];
  46.         if (i != 0) {
  47.             pll temp = {pre[i - 1], s[i] - 'a'};
  48.             ans += m[temp];
  49.         }
  50.         m[ {pre[i], s[i] - 'a'}]++;
  51.     }
  52.  
  53.     cout << ans << '\n';
  54.     return;
  55.  
  56. }
  57.  
  58. int main(int argc , char ** argv) {
  59.     ios_base::sync_with_stdio(false) ;
  60.     cin.tie(NULL) ;
  61.  
  62.     ll t = 1;
  63.  
  64.     while (t--) {
  65.         solve();
  66.     }
  67.  
  68.     return 0 ;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement