(I2
I152
I5
(dp0
Vmaxarrea.%l
p1
(Vmaxarrea.cpp
p2
S'//#include<iostream>\r\n#include<cstdio>\n//#include<fstream>\nusing namespace std;/*\nifstream si("fisier.in");\nofstream so("fisier.out");*/\r\nlong long max(long long a,long long b)\r\n{\r\n    return a>b?a:b;\r\n}\r\nconst int NMAX=1000005,CMAX=15005;\r\nint st[NMAX],patr[NMAX],up[CMAX];\r\nint main()\r\n{\r\n    int n;\r\n    scanf("%d",&n);\r\n    int i,x,maxx;\r\n    for(i=1;i<=n;++i)\r\n    {\r\n        scanf("%d",&patr[i]);\r\n        if(patr[i]>patr[i-1])\r\n        {\r\n            st[i]=1;\r\n        }\r\n        else\r\n        {\r\n            if(patr[i]==patr[i-1])\r\n                st[i]=st[i-1]+1;\r\n            else\r\n            {\r\n                x=patr[i]-1;\r\n                maxx=0;\r\n                while(x)\r\n                {\r\n                    if(up[x]>maxx)\r\n                        maxx=up[x];\r\n                    --x;\r\n                }\r\n                st[i]=i-maxx;\r\n            }\r\n        }\r\n        up[patr[i]]=i;\r\n    }\r\n\r\n    for(i=0;i<=n;++i)\r\n        up[i]=0;\r\n    int a=0,b;\r\n    long long maxa=0;\r\n    for(i=n;i;--i)\r\n    {\r\n        if(patr[i]>patr[i+1])\r\n        {\r\n            b=1;\r\n        }\r\n        else\r\n        {\r\n            if(patr[i]==patr[i+1])\r\n            {\r\n\r\n                b=a+1;\r\n            }\r\n            else\r\n            {\r\n                x=patr[i]-1;\r\n                maxx=n+1;\r\n                while(x)\r\n                {\r\n                    if(up[x]<maxx&&up[x])\r\n                        maxx=up[x];\r\n                    --x;\r\n                }\r\n\r\n\r\n                b=maxx-i;\r\n            }\r\n        }\r\n        up[patr[i]]=i;\r\n        a=b;\r\n        maxa=max(maxa,1LL*(b+st[i]-1)*patr[i]);\r\n    }\r\n\r\n    printf("%lld",maxa);\n    return 0;\n}\r\n'
p3
tp4
stp5
.