比赛 |
2025.6.21 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
简单题www |
最终得分 |
100 |
用户昵称 |
徐诗畅 |
运行时间 |
2.762 s |
代码语言 |
C++ |
内存使用 |
56.91 MiB |
提交时间 |
2025-06-21 17:21:25 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int n,t[35][35],ans,pre[35][N],pos[35][35];
char s[N];
int main(){
freopen("www.in","r",stdin);
freopen("www.out","w",stdout);
scanf("%d%s",&n,s+1);
for(int i=1;i<=n;i++){
for(int j=0;j<26;j++){
pre[j][i]=pre[j][i-1];
if(s[i]-'a'==j)pre[j][i]++;
}
}
for(int i=1;i<=n;i++){
int r=s[i]-'a';
for(int l=0;l<26;l++){
if(l==r)continue;
int rl=pre[r][i]-pre[l][i];
if(pre[r][i]-pre[r][pos[r][l]]>0&&pre[l][i]-pre[l][pos[r][l]]>0){
ans=max(ans,rl-t[r][l]);
}
if(rl<t[r][l]){
t[r][l]=rl;
pos[r][l]=i;
}
int lr=pre[l][i]-pre[r][i];
if(pre[l][i]-pre[l][pos[l][r]]>0&&pre[r][i]-pre[r][pos[l][r]]>0){
ans=max(ans,lr-t[l][r]);
}
if(lr<t[l][r]){
t[l][r]=lr;
pos[l][r]=i;
}
}
}
printf("%d",ans);
return 0;
}