| 比赛 |
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
*/