一眼顶针,鉴定为纯纯的前缀和

void solve() {
    auto decode = [&](char c) {
        if (c == 'P') return 3;
        if (c == 'p') return 2;
        if (c == 'G') return 1;
        return 0;
    };
    string s;
    cin >> s;
    vector<int> pre(s.size() + 1);
    for (int i = 0; i < s.size(); ++i) pre[i + 1] = pre[i] + decode(s[i]);
    int q;
    cin >> q;
    while (q--) {
        int l, r;
        cin >> l >> r;
        cout << pre[r] - pre[l - 1] << "\n";
    }
}