#include "sequence.h"
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
typedef tree<array<int,2>,null_type,less<array<int,2>>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;
int sequence(int n, vector<int> arr) {
int ans = 0;
array<int,2>locs[n];
array<int,2>def = {n+10,-1};
fill(locs,locs+n,def);
int cns[n];
fill(cns,cns+n,0);
int cur = 0;
for(int i = 0;i<n;i++){
arr[i]--;
cns[arr[i]]++;
locs[arr[i]][0]=min(locs[arr[i]][0],i);
locs[arr[i]][1]=max(locs[arr[i]][1],i);
if(i){
if(arr[i]!=arr[i-1]){
cur=0;
}
}
cur++;
ans=max(ans,cur);
}
for(int i = 0;i<n;i++){
int bigger = (locs[i][1]-locs[i][0]+1)-cns[i];
if(bigger<(n+2)/2){
ans=max(ans,cns[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... |