比赛 26暑假集训模拟赛2 评测结果 AAAAAATTTTT
题目名称 It s Mooin Time III 最终得分 54
用户昵称 王潇翊 运行时间 5.550 s
代码语言 C++ 内存使用 3.73 MiB
提交时间 2026-07-02 11:01:05
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
long long n,q,ans,c[2][26];
string s;
int main()
{
    freopen("Time.in","r",stdin);
    freopen("Time.out","w",stdout);
    cin >> n >> q >> s;
    if (q == 1 && n > 50)
    {
        int aa,bb;
        cin >> aa >> bb;
        memset(c[0],0,sizeof(c[0]));
        int cnt = 0;
        while (s[cnt] == s[cnt + 1])
        {
            cnt++;
        }
        c[0][s[cnt] - 'a'] = cnt + 1;
        for (int i = n - 1;i >= 0;i--)
        {
            if (c[1][s[i] - 'a'] == 0)
            {
                c[1][s[i] - 'a'] = i;
            }
        }
        for (int i = 0;i < 26;i++)
        {
            for (int j = c[0][i] + 1;j < c[1][i];j++)
            {
                if (s[j] == i + 'a')
                {
                    ans = max(ans,(j - c[0][i]) * (c[1][i] - j));
                }
            }
        }
        cout << ans;
        return 0;
    }
    for (int h = 1,l,r;h <= q;h++)
    {
        ans = 0;
        cin >> l >> r;
        l--;
        r--;
        for (long long i = l;i <= r;i++)
        {
            for (long long j = i + 1;j <= r;j++)
            {
                for (long long k = j + 1;k <= r;k++)
                {
                    if (s[i] != s[j] && s[j] == s[k])
                    {
                        ans = max(ans,(j - i) * (k - j));
                    }
                }
            }
        }
        if (ans == 0)
        {
            cout << -1;
        }
        else
        {
            cout << ans;
        }
        cout << endl;
    }
    return 0;
}