fork(4) download
  1. #include<bits/stdc++.h>
  2. const int M=1e6+5;
  3. using namespace std;
  4. typedef long long ll;
  5. ll a[M],suf[M];
  6. const ll inf=-2e18;
  7. set<int>s;
  8. int main()
  9. {
  10. ll ans=inf;
  11. int lf=-1234567;
  12. int n;
  13. cin>>n;
  14. for(int i=0;i<n;i++)
  15. cin>>a[i];
  16. suf[n-1]=a[n-1];
  17. for(int i=n-2;i>=0;i--)
  18. suf[i]=max(suf[i+1],a[i]);
  19. s.insert(lf);
  20. for(int i=0;i<n-1;i++)
  21. {
  22. auto it=s.lower_bound(a[i]);
  23. it--;
  24. ll tp=(*it);
  25. if(tp!=lf && suf[i+1]>a[i])
  26. ans=max(ans,1LL*tp*a[i]*suf[i+1]);
  27. s.insert(a[i]);
  28. }
  29. if(ans==inf)
  30. cout<<"-1";
  31. else
  32. cout<<ans;
  33. return 0;
  34. }
Success #stdin #stdout 0s 4376KB
stdin
3
-2 -1 1
stdout
2