제출 #1347782

#제출 시각아이디문제언어결과실행 시간메모리
1347782nagorn_ph서열 (APIO23_sequence)C++20
0 / 100
2092 ms43472 KiB
#include "sequence.h"
#include <bits/extc++.h>
#define int long long
#define emb emplace_back
#define pii pair <int32_t, int32_t>
#define tiii tuple <int32_t, int32_t, int32_t>
#define all(a) a.begin(), a.end()

using namespace std;
using namespace __gnu_pbds;

#define ordered_multiset tree <int, null_type, less_equal <int>, rb_tree_tag, tree_order_statistics_node_update>

const int N = 5e5 + 5;
const int inf = 1e18;

int n, a[N];

int32_t sequence(int32_t Nn, vector<int32_t> A) {
    n = Nn;
    for (int i = 0; i < n; i++) a[i + 1] = A[i];
    ordered_multiset ms; 
    int ans = 0;
    for (int l = 1; l <= n; l++) {
        vector <int> freq(n + 1);
        int sz = 0;
        for (int r = l; r <= n; r++) {
            ms.insert(a[r]);
            freq[a[r]]++;
            ans = max(ans, freq[*ms.find_by_order((sz/2))]);
            ans = max(ans, freq[*ms.find_by_order(((sz+1)/2))]);
            if (ans == 2) return 2;
            sz++;
        }
        ms.clear();
    }
    return 1;
}
#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...