제출 #1184076

#제출 시각아이디문제언어결과실행 시간메모리
1184076Aviansh서열 (APIO23_sequence)C++20
7 / 100
38 ms10056 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...