#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define endl '\n'
//#define int long long
const int N=1e6+5,inf=2e8,MOD=1e9+7;
int best[26][26],pref[26],last[26],cnt[26][26];
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
//a[i]-a[j]-b[i]+b[j]
//a[i]-b[i]-a[j]+b[j]
for(int i=0;i<26;i++){
last[i]=-1;
for(int j=0;j<26;j++)best[i][j]=-inf;
}
int n; cin>>n;
string s; cin>>s;
int sol=0;
for(int i=0;i<n;i++){
int id=s[i]-'a';
pref[id]++;
for(int j=0;j<26;j++){
if(j==id || last[j]==-1)continue;
int ans=pref[id]-pref[j];
ans+=best[id][j];
sol=max(sol,ans);
best[j][id]=max(best[j][id],-(pref[j]-cnt[id][j])+pref[id]-1);
cnt[id][j]=0;
cnt[j][id]++;
}
last[id]=i;
}
cout<<sol;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |