Submission #880253

#TimeUsernameProblemLanguageResultExecution timeMemory
880253yusuf12360Sequence (APIO23_sequence)C++17
11 / 100
2086 ms52728 KiB
#include "sequence.h"
#include<bits/stdc++.h>
using namespace std;
int sequence(int n, vector<int> a) {
	vector<vector<int>> pos(n+1);
	for(int i=0; i<n; i++) pos[a[i]].push_back(i);
	int ans=0;
	for(int i=1; i<=n; i++) {
		for(int p : pos[i]) {
			int temp=0, els=0, add=0;
			set<int> s; s.insert(0);
			for(int l=p-1; l>=0; l--) {
				if(a[l]==i) break;
				else if(a[l]<i) add--;
				else add++;
				s.insert(add);
			}
			for(int r=p; r<n; r++) {
				if(a[r]==i) {
					temp++;
					if(abs(els)<=temp) ans=max(ans, temp);
					else {
						auto it=s.lower_bound(-temp-els);
						if(it!=s.end() && abs(els+*it)<=temp) ans=max(ans, temp);
					}
				} else if(a[r]<i) els--;
				else els++;
			}
		}
	}
	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...