제출 #1189398

#제출 시각아이디문제언어결과실행 시간메모리
1189398Thanhs서열 (APIO23_sequence)C++20
11 / 100
2094 ms10320 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define endl '\n' #define setmin(x, y) x = min((x), (y)) #define setmax(x, y) x = max((x), (y)) #define sqr(x) ((x) * (x)) #define all(x) x.begin(), x.end() int sequence(int N, vector<int> A) { int ans = 0; vector<int> c(N + 1); vector<bool> b(N + 1); for (int i = 0; i < N; i++) { priority_queue<int> L; priority_queue<int, vector<int>, greater<>> R; for (int j = i; j < N; j++) { c[A[j]]++; if (L.empty() || A[j] <= L.top()) L.push(A[j]); else R.push(A[j]); if (L.size() > R.size() + 1) R.push(L.top()), L.pop(); if (R.size() > L.size() + 1) L.push(R.top()), R.pop(); int res = 0; if (L.size() >= R.size()) setmax(res, c[L.top()]); if (R.size() >= L.size()) setmax(res, c[R.top()]); b[res] = 1; setmax(ans, res); } for (int j = i; j < N; j++) c[A[j]]--; } for (int i = 1; i <= ans; i++) assert(b[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...