#include<bits/stdc++.h>
using namespace std;
const int Hash=131;
int l1,l2,r1,r2,n;
char s[1000005];
unsigned long long sum[1000005],p[1000005];
int main()
{
scanf("%s",s+1);
int len=strlen(s+1);
p[1]=1;
sum[1]=s[1]-'a'+1;
for(int i=2;i<=len;i++)
{
sum[i]=sum[i-1]*Hash+s[i]-'a'+1;
p[i]=p[i-1]*Hash;
}
cin>>n;
while(n--)
{
cin>>l1>>r1>>l2>>r2;
if(sum[r1]-sum[l1-1]*p[r1-l1+1]==sum[r2]-sum[l2-1]*p[r2-l2+1])
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
cout<<sum[r1]-sum[l1-1]*p[r1-l1+1]<<' '<<sum[r2]-sum[l2-1]*p[r2-l2+1];
}
}
}
原题 为什么会Wa?把p[0]=1改成p[1]=1,sum[1]=s[1]-'a'+1就Wa了