#include <bits/stdc++.h>
using namespace std;
long long dy(const vector<long long>& tab, int idx) {
long long licznik = 0;
for (int i = idx - 1; i >= 0; i--) {
licznik++;
if (tab[i] >= tab[idx]) {
return licznik;
}
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin>>n;
vector<long long>tab(n);
long long a=0,b;
for(int i=0;i<n;i++){
cin>>tab[i];
if(tab[i]>=a){
a=tab[i];
b=i;
}
}
rotate(tab.begin(), tab.begin() + b + 1, tab.end());
vector<long long>tab1(n+2,0);
tab.insert(tab.begin(),INT_MAX);
for(int i=1;i<=n;i++){
long long k=dy(tab,i);
long long sta=i-k+1;
long long kon=i;
tab1[sta]++;
tab1[kon+1]--;
}
long long s=0;
long long ak=0;
for(int i=1;i<=n;i++){
ak+=tab1[i];
s=max(s,ak);
}
cout<<s;
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <bits/stdc++.h> using namespace std; long long dy(const vector<long long>& tab, int idx) { long long licznik = 0; for (int i = idx - 1; i >= 0; i--) { licznik++; if (tab[i] >= tab[idx]) { return licznik; } } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin>>n; vector<long long>tab(n); long long a=0,b; for(int i=0;i<n;i++){ cin>>tab[i]; if(tab[i]>=a){ a=tab[i]; b=i; } } rotate(tab.begin(), tab.begin() + b + 1, tab.end()); vector<long long>tab1(n+2,0); tab.insert(tab.begin(),INT_MAX); for(int i=1;i<=n;i++){ long long k=dy(tab,i); long long sta=i-k+1; long long kon=i; tab1[sta]++; tab1[kon+1]--; } long long s=0; long long ak=0; for(int i=1;i<=n;i++){ ak+=tab1[i]; s=max(s,ak); } cout<<s; return 0; } |
English