#include #include #include #include #include #include using namespace std; string line; struct freq_table { int oddsNum{ 0 }; vector count; freq_table(int b, int e) { count.resize('t' - 'a' + 1, 0); for (int i = b; i < e; i++) { inc(line[i]); } } void inc(char c) { ++count[c - 'a']; if (count[c - 'a'] & 1) { ++oddsNum; } else { --oddsNum; } } void dec(char c) { --count[c - 'a']; if (count[c - 'a'] & 1) { ++oddsNum; } else { --oddsNum; } } bool check(int len) { if (len & 1) { return oddsNum == 1; } else { return oddsNum == 0; } } }; int main() { getline(cin, line); getline(cin, line); int SIZE = line.size(); int result = 0; for (int len = SIZE; len > 0; --len) { int b{ 0 }; int e{ len }; freq_table table{ b, e }; if (table.check(len)) { result = len; break; } for (int i = 0; i < SIZE - len; i++) { table.dec(line[b++]); table.inc(line[++e - 1]); if (table.check(len)) { result = len; break; } } if (result != 0) { break; } } cout << result << endl; return 0; }