#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;
vector<int> pos[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]
    int n; cin>>n;
    string s; cin>>s;
    for(int i=0;i<n;i++){
        pos[s[i]-'a'].pb(i);
    }
    int sol=0;
    for(int i=0;i<26;i++){
        for(int j=0;j<26;j++){
            if(i==j || pos[i].empty() || pos[j].empty())continue;
            int cnt=0,mn=inf,far=0;
            int l1=0,l2=0;
            while(l1<pos[i].size() || l2<pos[j].size()){
                if(l2==pos[j].size() || pos[i][l1]<pos[j][l2]){
                    cnt++;
                    far++;
                    l1++;
                }
                else{
                    mn=min({0,mn,cnt-far});
                    far=0;
                    cnt--;
                    l2++;
                }
                sol=max(sol,cnt-mn);
            }
        }
    }
    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... |