// Task Nivelle.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int N = 2e5;
int a[N], nextLetter[N][50];
int main()
{
int n, minl = -1, minr = -1;
long double ans=1.000000;
cin >> n;
string s;
cin >> s;
for (int i = 0;i < s.size();++i)
{
a[i] = s[i] - 'a' + 1;
}
for (int i = 0;i< n;++i)
{
for (int j = 0;j < 50;++j)
{
nextLetter[i][j] = n;
}
}
nextLetter[n - 1][a[n - 1]] = n-1;
for (int i = n - 2;i >= 0;--i)
{
for (int j = 1;j <= 30;++j)
{
if (a[i] == j)
{
nextLetter[i][j] = i;
}
else
{
nextLetter[i][j] = nextLetter[i + 1][j];
}
}
}
for (int i = 0;i < n;++i)
{
sort(nextLetter[i], nextLetter[i] + 30);
}
//for (int i = 0;i < n;++i)
//{
// for (int j = 1;j<=26;++j)
// {
// cout << i << " " << j <<" "<<nextLetter[i][j] << endl;
// }
//}
for (int i = 0;i < n;++i)
{
for (int j = 1;j < 30;++j)
{
int dist = nextLetter[i][j] - i;
long double currans = j*1.0 / dist;
if (currans < ans)
{
ans = currans;
minl = i;
minr = nextLetter[i][j]-1;
}
if (nextLetter[i][j] == n)
{
break;
}
}
}
cout << minl+1 << " " << minr+1 << endl;
//cout << ans << endl;
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu
// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
| # | 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... |