#include # define clr(x,a) memset(x,a,sizeof(x)) # define all(a) a.begin(), a.end() # define deb(x) cout<<#x<<"=="<>t; while(t--) # define rev(s) reverse(s.begin(),s.end()) # define linija cout<<"___________\n"; # define FOR(i,j,k) for(int i = j; i <= k; i++) # define mp make_pair using namespace std; typedef long long ll; typedef vector vi; typedef pair pii; const int mxN=100005, mxM=5005, LOG=25, inf = 2e9; const long long mod=998244353; string s; int q, l, r, n; ll sf1[mxN], psl[mxN], psr[mxN]; ll res; int main(){ freopen("bros.in", "r", stdin); freopen("bros.out", "w", stdout); cin >> s; cin >> q; n = s.size(); int ur = count(s.begin(), s.end(), 'R'); for(int i = s.size()-1; i >= 0; i--){ if(s[i] == 'R') ur--; else sf1[i+1] = ur; sf1[i+1] += sf1[i+2]; } for(int i = 0; i < n; i++){ if(s[i] == 'R') psr[i+1]++; else psl[i+1]++; psr[i+1] += psr[i]; psl[i+1] += psl[i]; } while(q--){ sc("%d %d", &l, &r); res = (sf1[l] - sf1[r+1]); //deb(res); //cout << psl[r] - psl[l-1] << " " << psr[l-1] << endl; res -= (psl[r] - psl[l-1])*psr[l-1]; pr("%lld\n", res); } return 0; }