Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. pragma GCC optimize ("Ofast")
  2. #include <bits/stdc++.h>
  3.  
  4. using namespace std;
  5. #define rep(a,b,c) for(int a = (b); a < (c); a++)
  6.  
  7. typedef __int128 ll;
  8. typedef vector<ll> vi;
  9. typedef vector<vi> vvi;
  10. typedef vector<vvi> vvvi;
  11. typedef pair<int, int> pii;
  12. typedef vector<pii> vii;
  13.  
  14. const int mx = 300001, p = 131, p2 = 31;
  15. const ll mod = 1e18+7;
  16.  
  17.  
  18. int main(){
  19. ios_base::sync_with_stdio(0);
  20.  
  21. vi xp (mx);
  22. xp[0] = 1;
  23. rep(i, 1, mx)
  24. xp[i] = (xp[i-1]*p)%mod;
  25.  
  26. string s;
  27. cin >> s;
  28. int n = s.size(), m;
  29. cin >> m;
  30.  
  31. vi hsh(n+1);
  32. ll h = 0;
  33. rep(i, 0, n){
  34. h *= p;
  35. h += s[i];
  36. h %= mod;
  37. hsh[i+1] = h;
  38. }
  39.  
  40. rep(i, 0, m){
  41. int l, r;
  42. cin >> l >> r;
  43. cout << (long long int) ((hsh[r]-(hsh[l]*xp[r-l])%mod+mod)%mod) << endl;
  44. }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement