Submission #199515

# Submission time Handle Problem Language Result Execution time Memory
199515 2020-02-01T17:35:54 Z SamAnd Nivelle (COCI20_nivelle) C++17
110 / 110
101 ms 10744 KB
#include <bits/stdc++.h>
using namespace std;
const int N = 100005;

int n;
char a[N];

int u[N][26];

int main()
{
    scanf("%d", &n);
    scanf(" %s", a);
    for (int j = 0; j < 26; ++j)
        u[n][j] = n;
    for (int i = n - 1; i >= 0; --i)
    {
        for (int j = 0; j < 26; ++j)
            u[i][j] = u[i + 1][j];
        u[i][a[i] - 'a'] = i;
    }
    int x = N, y = 1;
    int ansl = -1, ansr = -1;
    for (int l = 0; l < n; ++l)
    {
        sort(u[l], u[l] + 26);
        for (int j = 0; j < 26; ++j)
        {
            int r;
            if (j < 25)
                r = u[l][j + 1] - 1;
            else
                r = n - 1;
            if ((j + 1) * y < x * (r - l + 1))
            {
                x = (j + 1);
                y = (r - l + 1);
                ansl = l;
                ansr = r;
            }
        }
    }
    printf("%d %d\n", ansl + 1, ansr + 1);
    return 0;
}

Compilation message

nivelle.cpp: In function 'int main()':
nivelle.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
     ~~~~~^~~~~~~~~~
nivelle.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf(" %s", a);
     ~~~~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 376 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 6 ms 376 KB Output is correct
6 Correct 6 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 504 KB Output is correct
2 Correct 6 ms 508 KB Output is correct
3 Correct 6 ms 504 KB Output is correct
4 Correct 6 ms 504 KB Output is correct
5 Correct 7 ms 632 KB Output is correct
6 Correct 7 ms 504 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 67 ms 10628 KB Output is correct
2 Correct 29 ms 10616 KB Output is correct
3 Correct 32 ms 10616 KB Output is correct
4 Correct 39 ms 10744 KB Output is correct
5 Correct 30 ms 10652 KB Output is correct
6 Correct 41 ms 10744 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 34 ms 10616 KB Output is correct
2 Correct 32 ms 10724 KB Output is correct
3 Correct 36 ms 10620 KB Output is correct
4 Correct 34 ms 10744 KB Output is correct
5 Correct 43 ms 10616 KB Output is correct
6 Correct 33 ms 10620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 67 ms 10616 KB Output is correct
2 Correct 65 ms 10616 KB Output is correct
3 Correct 59 ms 10616 KB Output is correct
4 Correct 69 ms 10744 KB Output is correct
5 Correct 101 ms 10744 KB Output is correct
6 Correct 71 ms 10744 KB Output is correct