Submission #1136661

#TimeUsernameProblemLanguageResultExecution timeMemory
1136661domblySequence (APIO23_sequence)C++20
11 / 100
2098 ms59236 KiB
#include "sequence.h"
#include <bits/stdc++.h>
#define F first
#define S second
#define pb push_back

using namespace std;

const int N = 5e5 + 10;

map<int,vector<int>>m;

int g(int i,int rr) {
    int l = 0,r = m[i].size() - 1,ans = -1;
    while(l <= r) {
        int mid = (l + r) / 2;
        if(m[i][mid] <= rr) {
            ans = mid;
            l = mid + 1;
        }else {
            r = mid - 1;
        }
    }
    return ans + 1;
}

int f(int x,int l,int r) {
    return g(x,r) - g(x,l - 1);
}

int sequence(int N, std::vector<int> A) {
    for(int i = 0; i < N; i++) m[A[i]].pb(i);
    int ans = 0;
    for(int i = 0; i < N; i++) {
        vector<int>v;
        for(int j = i; j < N; j++) {
            v.pb(A[j]);
            sort(v.begin(),v.end());
            int k = v.size();
            ans = max(ans,f(v[(k - 1) / 2],i,j));
            ans = max(ans,f(v[k / 2],i,j));
        }
    }
    return ans;
}
/*
7
1 2 3 1 2 1 3
3

9
1 1 2 3 4 3 2 1 1
2

14
2 6 2 5 3 4 2 1 4 3 5 6 3 2
3
*/
#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...