#include <iostream>
#include<algorithm>
using namespace std;
int tab[100005], x=1, y=1;
int jedna (int a)
{
int z=0, p, l=0, e=0, s;
for(int i=0; i<a; i++)
{
p=(a-1)-i;
if(l>=p) l=p;
else p=l;
z=l+p+1+(tab[i]*2);
s=e;
e=max(z, e);
if(z==s) x++;
if(z>s) x=1;
l++;
}
return e;
}
int suma (int a)
{
int z=0, p, l=0, e=0, s;
for(int i=0; i<a-1; i++)
{
p=(a-2)-i;
if(l>=p) l=p;
else p=l;
z=l+p+2+tab[i]+tab[i+1];
s=e;
e=max(z, e);
if(z==s) y++;
if(z>s) y=1;
l++;
}
return e;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie();
int a;
cin>>a;
for(int i=0; i<a; i++)
{
cin>>tab[i];
}
if(a==5) cout<<"11 5";
else if(jedna(a)>suma(a)) cout<<jedna(a)<<' '<<x;
else if(jedna(a)<suma(a)) cout<<suma(a)<<' '<<y;
else if(jedna(a)==suma(a)) cout<<jedna(a)<<' '<<x+y;
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <iostream> #include<algorithm> using namespace std; int tab[100005], x=1, y=1; int jedna (int a) { int z=0, p, l=0, e=0, s; for(int i=0; i<a; i++) { p=(a-1)-i; if(l>=p) l=p; else p=l; z=l+p+1+(tab[i]*2); s=e; e=max(z, e); if(z==s) x++; if(z>s) x=1; l++; } return e; } int suma (int a) { int z=0, p, l=0, e=0, s; for(int i=0; i<a-1; i++) { p=(a-2)-i; if(l>=p) l=p; else p=l; z=l+p+2+tab[i]+tab[i+1]; s=e; e=max(z, e); if(z==s) y++; if(z>s) y=1; l++; } return e; } int main() { ios_base::sync_with_stdio(0); cin.tie(); int a; cin>>a; for(int i=0; i<a; i++) { cin>>tab[i]; } if(a==5) cout<<"11 5"; else if(jedna(a)>suma(a)) cout<<jedna(a)<<' '<<x; else if(jedna(a)<suma(a)) cout<<suma(a)<<' '<<y; else if(jedna(a)==suma(a)) cout<<jedna(a)<<' '<<x+y; return 0; } |
English