#include #include using namespace std; int main() { int n; cin >> n; string s; cin >> s; int lets = 't' - 'a' + 1; int* prefs = (int*)malloc(sizeof(int) * lets * (n + 1)); for (int i = 0; i < lets; i++) { prefs[0 + (n + 1) * i] = 0; } for (int i = 0; i < n; i++) { int charnum = s[i] - 'a'; for (int j = 0; j < lets; j++) { if (j == charnum) { prefs[i + 1 + (n + 1) * j] = prefs[i + (n + 1) * j] + 1; } else { prefs[i + 1 + (n + 1) * j] = prefs[i + (n + 1) * j]; } } } int maxlen = 0; for (int i = 0; i < n-maxlen; i++) { for (int j = i + 1; j <= n; j++) { bool oneoff = false; bool fail = false; for (int k = 0; k < lets; k++) { int cou = prefs[j + (n + 1) * k]-prefs[i + (n+1)*k]; if (cou&1) { if (oneoff) { fail = true; break; } else { oneoff = true; } } } if (!fail) { maxlen=max(maxlen, j-i); } } } cout << maxlen << endl; return 0; }