제출 #1366305

#제출 시각아이디문제언어결과실행 시간메모리
1366305sodoo서열 (APIO23_sequence)C++20
28 / 100
2096 ms8000 KiB
#include <bits/stdc++.h>
using namespace std;

int sequence(int N, vector<int> A){
    int mx = 0;

    // compress values (important if A[i] is large)
    vector<int> comp = A;
    sort(comp.begin(), comp.end());
    comp.erase(unique(comp.begin(), comp.end()), comp.end());

    for(int i = 0; i < N; i++){
        int M = comp.size();
        vector<int> cnt(M, 0);

        for(int j = i; j < N; j++){
            // add A[j]
            int id = lower_bound(comp.begin(), comp.end(), A[j]) - comp.begin();
            cnt[id]++;

            int len = j - i + 1;

            int lpos = (len - 1) / 2;
            int rpos = len / 2;

            int cur = 0;
            int leftMedian = -1, rightMedian = -1;

            for(int k = 0; k < M; k++){
                cur += cnt[k];
                if(leftMedian == -1 && cur > lpos){
                    leftMedian = k;
                }
                if(cur > rpos){
                    rightMedian = k;
                    break;
                }
            }

            int freqL = cnt[leftMedian];
            int freqR = cnt[rightMedian];

            int best = max(freqL, freqR);
            mx = max(mx, best);
        }
    }

    return mx;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…