#include "sequence.h"
#include <bits/stdc++.h>
#define F first
#define S second
#define pb push_back
using namespace std;
const int N = 5e5 + 10;
map<int,vector<int>>m;
int g(int i,int rr) {
int l = 0,r = m[i].size() - 1,ans = -1;
while(l <= r) {
int mid = (l + r) / 2;
if(m[i][mid] <= rr) {
ans = mid;
l = mid + 1;
}else {
r = mid - 1;
}
}
return ans + 1;
}
int f(int x,int l,int r) {
return g(x,r) - g(x,l - 1);
}
int sequence(int N, std::vector<int> A) {
for(int i = 0; i < N; i++) m[A[i]].pb(i);
int ans = 0;
for(int i = 0; i < N; i++) {
vector<int>v;
for(int j = i; j < N; j++) {
v.pb(A[j]);
sort(v.begin(),v.end());
int k = v.size();
ans = max(ans,f(v[(k - 1) / 2],i,j));
ans = max(ans,f(v[k / 2],i,j));
}
}
return ans;
}
/*
7
1 2 3 1 2 1 3
3
9
1 1 2 3 4 3 2 1 1
2
14
2 6 2 5 3 4 2 1 4 3 5 6 3 2
3
*/
# | 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... |