fork download
  1. #include <bits/stdc++.h>
  2. #include <stack>
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. stack<int> p;
  8. long long area=0,i,t=0,c,n;
  9. cin>>n;
  10. int a[n];
  11. for(i=0;i<n;i++){
  12. cin>>a[i];
  13. }
  14. for(i=0;i<n;i++){
  15.  
  16. if(a[i]>a[p.top()] || p.empty()){
  17. p.push(i);
  18. continue;
  19. }
  20.  
  21. else{
  22. while(a[i]<a[p.top()]){
  23. c=a[i]*(i-p.top()-1);
  24. if(p.empty()){
  25. t=a[i]*i;
  26. area=(area>=t)?area:t;
  27. break;
  28. }
  29. else
  30. p.pop();
  31. t=max(t,c);
  32. }
  33. // c=a[i]*(i-p.top()-1);
  34. p.push(i);
  35. }
  36.  
  37. area=(area>=t)?area:t;
  38. }
  39. cout<<area;
  40. }
  41.  
Runtime error #stdin #stdout 0s 15240KB
stdin
5
1
2
3
4
5
stdout
Standard output is empty