| 比赛 |
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;
}