#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(l1<pos[i].size() && (l2==pos[j].size() || pos[i][l1]<pos[j][l2])){
cnt++;
far++;
l1++;
}
else{
mn=min({0,mn,cnt-far});
far=0;
cnt--;
l2++;
}
// if(cnt-mn==8)cout<<i<<' '<<j<<' '<<l1<<' '<<l2<<' '<<cnt<<' '<<mn<<endl;
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... |