Submission #1367554

#TimeUsernameProblemLanguageResultExecution timeMemory
1367554xorshiftSequence (APIO23_sequence)C++20
28 / 100
2097 ms59020 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;

using ll = long long;
using vint = vector<int>;
using vll = vector<ll>;
using pint = pair<int, int>;
using vpint = vector<pint>;

template<typename T>
using ordered_set = tree<T, null_type, less<>, rb_tree_tag, tree_order_statistics_node_update>;

#define sz(x) (int)(x).size()
#define all(x) begin(x), end(x)
#define rep(i, n) for (int i = 0; i < (n); i++)
#define rrep(i, n) for (int i = (n)-1, i >= 0; i--)
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define RFOR(i, a, b) for (int i = (a)-1, i >= (b); i--)

int sequence(int N, vint A) {
    int max_count = 0;
    ordered_set<pint> values;
    map<int, int> count;
    rep(i, N) {
        FOR(j, i, N) {
            count[A[j]]++; values.insert({A[j], j});
            int size = j-i+1;
            if (size & 1) {
                auto [m, idx] = *values.find_by_order(size/2);
                max_count = max(max_count, count[m]);
            } else {
                auto [m1, idx1] = *values.find_by_order(size/2-1);
                max_count = max(max_count, count[m1]);
                auto [m2, idx2] = *values.find_by_order(size/2);
                max_count = max(max_count, count[m2]);
            }
        }
        values.clear(); count.clear();
    }
    return max_count;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...