#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define endl '\n'
#define setmin(x, y) x = min((x), (y))
#define setmax(x, y) x = max((x), (y))
#define sqr(x) ((x) * (x))
#define all(x) x.begin(), x.end()
int sequence(int N, vector<int> A)
{
int ans = 0;
vector<int> c(N + 1);
vector<bool> b(N + 1);
for (int i = 0; i < N; i++)
{
priority_queue<int> L;
priority_queue<int, vector<int>, greater<>> R;
for (int j = i; j < N; j++)
{
c[A[j]]++;
if (L.empty() || A[j] <= L.top())
L.push(A[j]);
else
R.push(A[j]);
if (L.size() > R.size() + 1)
R.push(L.top()), L.pop();
if (R.size() > L.size() + 1)
L.push(R.top()), R.pop();
int res = 0;
if (L.size() >= R.size())
setmax(res, c[L.top()]);
if (R.size() >= L.size())
setmax(res, c[R.top()]);
b[res] = 1;
setmax(ans, res);
}
for (int j = i; j < N; j++)
c[A[j]]--;
}
for (int i = 1; i <= ans; i++)
assert(b[i]);
return ans;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |