Submission #1168897

#TimeUsernameProblemLanguageResultExecution timeMemory
1168897rayan_bd서열 (APIO23_sequence)C++20
0 / 100
653 ms59120 KiB
#include <bits/stdc++.h>
using namespace std;

const double INF = 5e18;
const int mxN = 5e5+100;

#define fi first
#define se second
#define all(v) v.begin(), v.end()

int sequence(int N,vector<int> A){
	map<int,pair<int,int>> mp;
	map<int,int> frq;
	for(int i=0;i<N;++i){
		if(!mp.count(A[i])) mp[A[i]].fi=i;
		mp[A[i]].se=i;
		++frq[A[i]];
	}
	int cnt=1,ans=1;
	for(int i=1;i<N;++i){
		if(A[i]==A[i-1]) ans=max(ans,++cnt);
		else cnt=1;
	}
	for(auto it:mp){
		int len=it.se.se-it.se.fi+1,tst=0;
	
			if(len&1){
				if((frq[it.fi]+it.se.fi-1+(N-it.se.se))>=((len+1)/2)) ans=max(ans,frq[it.fi]);
			}else{
				if((frq[it.fi]+it.se.fi-1+(N-it.se.se))>=(len/2)) ans=max(ans,frq[it.fi]);
			}
	
	}
	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...