记录编号 601455 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 2993.简单题www 最终得分 100
用户昵称 Gravatar健康铀 是否通过 通过
代码语言 C++ 运行时间 8.646 s
提交时间 2025-06-24 10:30:18 内存使用 4.35 MiB
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
 
const int N = 1e6 + 5;
const int inf = 1e9;
char s[N];
bool ap[26];
 
int main() {
	freopen("www.in","r",stdin);
	freopen("www.out","w",stdout);
    int n;
    scanf("%d", &n);
    scanf("%s", s);
    for (int i = 0; i < n; i++) ap[s[i] - 'a'] = true;
    int res = 0;
    for (int a = 0; a < 26; a++) {
        if (!ap[a]) continue;
        for (int b = 0; b < 26; b++) {
            if (a == b || !ap[b]) continue;
            int f0 = -inf, f1 = -inf;
            int mx = -inf;
            for (int i = 0; i < n; i++) {
                int v = 0;
                if (s[i] == 'a' + a) v = 1;
                else if (s[i] == 'a' + b) v = -1;
                if (s[i] == 'a' + b) {
                    int t0 = f0;
                    int t1 = f1;
                    f0 = -inf;
                    f1 = v;
                    if (t0 != -inf) f1 = max(f1, t0 + v);
                    if (t1 != -inf) f1 = max(f1, t1 + v);
                } else {
                    if (f0 == -inf) f0 = v;
                    else f0 = max(v, f0 + v);
                    if (f1 != -inf) f1 += v;
                }
                if (f1 > mx) mx = f1;
            }
            if (mx > res) res = mx;
        }
    }
    printf("%d\n", res);
    return 0;
}