#include <algorithm>
#include <cmath>
#include <iostream>
#include <string>
#include <vector>
#define ll long long
using namespace std;
long long a[100000], nxt[100000][26];
int main()
{
    ll n, i, j;
    cin >> n;
    string s;
    cin >> s;
    ll l, r, cnt;
    double ans = 1;
    for (i = 0; i < n; i++)
    {
        a[i] = s[i] - 'a';
    }
    for (j = 0; j < 26; j++)
    {
        nxt[n][j] = n + 1;
    }
    for (i = n - 1; i >= 0; i--)
    {
        for (j = 0; j < 26; j++)
        {
            nxt[i][j] = nxt[i + 1][j];
        }
        nxt[i][a[i]] = i;
    }
    for (i = 0; i < n; i++)
    {
        cnt = 0;
        vector<ll> v;
        for (j = 0; j < 26; j++)
        {
            v.push_back(nxt[i][j]);
        }
        sort(v.begin(), v.end());
        j = 0;
        while (j < 26)
        {
            if (v[j] == n + 1)
            {
                break;
            }
            if (v[j] == a[i])
            {
                j++;
                continue;
            }
            cnt++;
            if (ans > (double)cnt / (v[j] - i))
            {
                ans = (double)cnt / (v[j] - i);
                l = i, r = v[j] - 1;
            }
            j++;
        }
        cnt++;
        if (ans > (double)cnt / (n - i))
        {
            ans = (double)cnt / (n - i);
            l = i, r = n - 1;
        }
    }
    cout << l + 1 << " " << r + 1;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |