Submission #756994

#TimeUsernameProblemLanguageResultExecution timeMemory
756994Valters07Sequence (APIO23_sequence)C++17
0 / 100
71 ms4208 KiB
#include <bits/stdc++.h> #include "sequence.h" #define ll long long #define pb push_back #define fi first #define se second using namespace std; int sequence(int n, vector<int> a) { int peak = 0; while(peak+1<n&&a[peak]<=a[peak+1]) peak++; int res = 1, l = 0, r; for(int i = 1;i<n;i++) if(a[i]!=a[i-1]) l=i; else res=max(res,i-l+1); l = r = peak; while(l>0&&a[l-1]==a[l]) l--; while(r<n-1&&a[r+1]==a[r]) r++; while(l>0&&r<n-1) { if(a[l]>a[r]) l--; else if(a[l]<a[r]) r++; else l--, r++; int c1 = 1, c2 = 1; while(l>0&&a[l-1]==a[l]) c1++, l--; while(r<n-1&&a[r+1]==a[r]) c2++, r++; if(a[l]==a[r]) { int mi = l+(n-r-1), cur = c1+c2, mx = n-mi-cur; if(abs(mi-mx)<=cur) res=max(res,cur); } } return res; }
#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...