# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
954263 | 2024-03-27T14:48:40 Z | Trisanu_Das | 서열 (APIO23_sequence) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "sequence.h" using namespace std; int sequence(int n, vector<int> a){ int occ[n + 1], ans = 0; for(int i = 0; i < n; i++){ memset(occ, 0, sizeof(occ)); multiset<int> l, r; for(int j = i; j < n; j++){ occ[a[j]]++; if(r.empty() || A[j] <= *r.begin()) l.insert(A[j]); else r.insert(A[j]); if(l.size() > r.size() + 1){ r.insert(*--l.end()); l.erase(--l.end()); } if(r.size() > l.size()){ l.insert(*r.begin()); r.erase(r.begin()); } ans = max(ans, occ[*--l.end()]); if(l.size() == r.size()) ans = max(ans, occ[*r.begin()]); } } return ans; }