Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <set>
- #include <map>
- #include <algorithm>
- #include <iomanip>
- #include <cmath>
- #include <queue>
- #define pb push_back
- #define mp make_pair
- #pragma GCC optimize("O3")
- long long pow(int a,int b) {
- if (b==0 || a==1) return 1;
- if (b%2==0) { long long k=pow(a,b/2); return (k*k); }
- else { long long k=pow(a,b/2); return k*k*a; }
- }
- long long powmod(long long a,long long b,long long mod) {
- if (b==0 || a==1) {if (mod==1) return 0; else return 1; }
- if (b%2==0) { long long k=powmod(a,b/2,mod); return (k*k)%mod; }
- else {long long k=powmod(a,b/2,mod); return ( (k*k) %mod *a)% mod; }
- }
- long long gcd(long long a, long long b) {
- if (a==0) return b;
- if (b==0) return a;
- if (a>b) return gcd(a%b,b); else return gcd(b%a,a);
- }
- int prime(int p) { // 1 - простое
- for (int i=2;i*i<=p;i++) {
- if (p%i==0 && i<p) return 0;
- }
- return 1;
- }
- long long sqr(long long i) {
- return i*i;
- }
- using namespace std;
- long long pows[200000];
- int pref[200000];
- long long mod=1000000007;
- long long p=29;
- long long hash(int l,int r) {
- return pref[r]-pref[l-1];
- }
- signed main() {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- /* --------- */
- string s;
- cin>>s;
- int n=s.size()+4;
- pows[0]=1;
- for (int i=1;i<n;i++) pows[i]=(pows[i-1]*p)%mod;
- pref[0]=s[0]-'a';
- for (int i=1;i<s.size();i++) {
- pref[i]=(pref[i-1]+(s[i]-'a')*pows[i])%mod;
- }
- int q;
- cin>>q;
- vector <pair<int,int>> m(q);
- for (int i=0;i<q;i++) { cin>>m[i].first>>m[i].second;
- m[i].first--;
- m[i].second--;
- int u=m[i].second-m[i].first;
- l1=m[i].second;
- r2=m
- int l1,l2,r1,r2;
- if (u%2==0) {
- l1=
- }
- long long hash1=hash()
- }
- /* --------- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement