Submission #1061098

#TimeUsernameProblemLanguageResultExecution timeMemory
1061098stdfloat서열 (APIO23_sequence)C++17
28 / 100
2097 ms29780 KiB
#include <bits/stdc++.h>
#include "sequence.h"
using namespace std;

#define sz(v) (int)(v).size()

int sequence(int n, vector<int> a) {
    int mx = 0;
    for (int i = 0; i < n; i++) {
        vector<int> cnt(n + 1);
        multiset<int> s1, s2;
        for (int j = i; j < n; j++) {
            cnt[a[j]]++;

            if (s1.empty() || a[j] <= *--s1.end()) {
                s1.insert(a[j]);

                if (sz(s1) > sz(s2) + 1) {
                    s2.insert(*--s1.end());
                    s1.erase(--s1.end());
                }
            }
            else {
                s2.insert(a[j]);
            
                if (sz(s2) > sz(s1) + 1) {
                    s1.insert(*s2.begin());
                    s2.erase(s2.begin());
                }
            }

            if (sz(s1) == max(sz(s1), sz(s2))) mx = max(mx, cnt[*--s1.end()]);
            if (sz(s2) == max(sz(s1), sz(s2))) mx = max(mx, cnt[*s2.begin()]);
        }
    }

    return mx;
}
#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...