比赛 26暑假集训模拟赛2 评测结果 AAAAAAAAAAA
题目名称 It s Mooin Time III 最终得分 100
用户昵称 郑霁桓 运行时间 0.843 s
代码语言 C++ 内存使用 3.89 MiB
提交时间 2026-07-02 09:05:51
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,q,l,r,as;
vector<int>v[30];
string s;
int main(){
    freopen("Time.in","r",stdin);
    freopen("Time.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    cin>>n>>q>>s;
    s=' '+s;
    for(int i=1;i<=n;i++) v[s[i]-'a'].push_back(i);
    while(q--){
        cin>>l>>r,as=-1;
        int pl=l;
        for(int i=0;i<26;i++){
            l=pl;
            while(l<=r&&s[l]-'a'==i) l++;
            int p1=upper_bound(v[i].begin(),v[i].end(),r)-v[i].begin()-1;
            if(p1<0||p1>=v[i].size()||v[i][p1]<=l||v[i][p1]>r) continue;
            int p2=lower_bound(v[i].begin(),v[i].end(),(v[i][p1]+l)/2)-v[i].begin();
            for(int j=-2;j<=2;j++){
                if(p2+j<0||p2+j>=v[i].size()||p2+j>=p1||v[i][p2+j]<=l||v[i][p2+j]>=r) continue;
                as=max(as,(v[i][p2+j]-l)*(v[i][p1]-v[i][p2+j]));
            }
        }
        cout<<as<<"\n";
    }
    return 0;
}