#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define endl '\n'
//#define int long long
const int N=1e6+5,inf=2e9,MOD=1e9+7;
int best[26][26],pref[26],last[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;
    int n; cin>>n;
    string s; cin>>s;
    int sol=0;
    for(int i=0;i<n;i++){
        pref[s[i]-'a']++;
        last[s[i]-'a']=i;
        for(int j=0;j<26;j++){
            if(j==s[i]-'a' || last[j]==-1)continue;
            int ans=pref[s[i]-'a']-pref[j];
            ans+=best[i][j];
         //   if(ans==6 && i==8 && j==2)cout<<i<<' '<<j<<' '<<pref[s[i]-'a']-pref[j]<<' '<<pref[s[i]-'a']<<' '<<pref[j]<<' '<<best[i][j]<<endl;
            sol=max(sol,ans);
            best[j][i]=max(best[j][i],pref[s[i]-'a']-pref[j]-1);
        }
    }
    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... |