Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma GCC optimize ("Ofast")
- #include <bits/stdc++.h>
- using namespace std;
- #define rep(a,b,c) for(int a = (b); a < (c); a++)
- typedef __int128 ll;
- typedef vector<ll> vi;
- typedef vector<vi> vvi;
- typedef vector<vvi> vvvi;
- typedef pair<int, int> pii;
- typedef vector<pii> vii;
- const int mx = 300001, p = 131, p2 = 31;
- const ll mod = 1e18+7;
- int main(){
- ios_base::sync_with_stdio(0);
- vi xp (mx);
- xp[0] = 1;
- rep(i, 1, mx)
- xp[i] = (xp[i-1]*p)%mod;
- string s;
- cin >> s;
- int n = s.size(), m;
- cin >> m;
- vi hsh(n+1);
- ll h = 0;
- rep(i, 0, n){
- h *= p;
- h += s[i];
- h %= mod;
- hsh[i+1] = h;
- }
- rep(i, 0, m){
- int l, r;
- cin >> l >> r;
- cout << (long long int) ((hsh[r]-(hsh[l]*xp[r-l])%mod+mod)%mod) << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement