比赛 26暑假集训模拟赛2 评测结果 AWWTTTTTTTT
题目名称 It s Mooin Time III 最终得分 9
用户昵称 杨蕙宇 运行时间 8.827 s
代码语言 C++ 内存使用 21.39 MiB
提交时间 2026-07-02 09:32:47
显示代码纯文本
 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;
ll n,q,a[N],pre[N],p[30],sum[N][30];
string s;
ll query(ll l,ll r){
    ll ans=-1;
    for(int i=l;i<=r;i++){
        for(int k=r;k>l;k--){
            if(a[k]==a[i])continue;
            if(sum[r][a[k]]-sum[l-1][a[k]]<2)continue;
            ll j=pre[k];
            ll res=0;
            while(j>l&&j<r){
                if((k-j)*(j-i)<=res)break;
                res=(k-j)*(j-i);
                ans=max(ans,res);
            }
        }
    }
    return ans;
}
int main(){
    freopen("Time.in","r",stdin);
    freopen("Time.out","w",stdout);
    cin>>n>>q;
    cin>>s;
    for(int i=0;i<n;i++)a[i+1]=s[i]-'a'+1;
    for(int i=1;i<=n;i++){
        pre[i]=p[a[i]];
        p[a[i]]=i;
    }
    for(int i=1;i<=n;i++){
        sum[i][a[i]]++;
        for(int j=1;j<=26;j++){
            sum[i][j]+=sum[i-1][j];
        }
    }
//    for(int i=1;i<=n;i++)cout<<i<<" "<<a[i]<<" "<<pre[i]<<"\n";
//    cout<<"\n";
//    for(int i=1;i<=n;i++){
//        for(int j=1;j<=26;j++){
//            cout<<i<<" "<<j<<" "<<sum[i][j]<<"\n";
//        }
//    } 
//    cout<<"\n";
    while(q--){
        ll l,r;
        cin>>l>>r;
        cout<<query(l,r)<<"\n";
    }    
    return 0;
}
/*
12 5
abcabbacabac
1 12
2 7
4 8
2 5
3 10
*/