fork(2) download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define MAXN 1000000
  6.  
  7. int a[MAXN + 1];
  8.  
  9. void solve(int n) {
  10.  
  11. stack<int> s;
  12.  
  13. int result = INT_MIN, cur;
  14.  
  15. for (int i = 0; i < n; ++ i) {
  16. while (!s.empty() && s.top() >= a[i]) {
  17.  
  18. int tmp = s.top(); s.pop();
  19. printf("max1 = %d %d\n", tmp, a[i]);
  20. }
  21.  
  22. if (!s.empty()) printf("max2 = %d %d\n", a[i], s.top());
  23. s.push(a[i]);
  24. }
  25.  
  26. }
  27.  
  28. int main() {
  29.  
  30. int N;
  31.  
  32. scanf("%d", &N);
  33. for (int i = 0; i < N; ++ i) scanf("%d", &a[i]);
  34.  
  35. solve(N);
  36.  
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 19144KB
stdin
6
5 6 1 2 9 3
stdout
max2 = 6 5
max1 = 6 1
max1 = 5 1
max2 = 2 1
max2 = 9 2
max1 = 9 3
max2 = 3 2