fork download
  1.  
  2. #include <iostream>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. int main() {
  7.  
  8. int n; cin >> n;
  9.  
  10. vector<int> a(n + 2), p(n + 2), s(n + 2);
  11.  
  12. for (int i = 1; i <= n; i++) cin >> a[i], p[i] = s[i] = 1;
  13.  
  14. for (int i = 2; i <= n; i++)
  15. if (a[i] > a[i - 1]) p[i] = p[i - 1] + 1;
  16.  
  17. for (int i = n - 1; i >= 1; i--)
  18. if (a[i] < a[i + 1]) s[i] = s[i + 1] + 1;
  19.  
  20. int ans = 0;
  21. for (int i = 1; i <= n; i++) {
  22. ans = max(ans, max(p[i], s[i]) + (1 < i && i < n));
  23. if (1 < i && i < n) {
  24. if (a[i - 1] + 1 < a[i + 1])
  25. ans = max(ans, p[i - 1] + 1 + s[i + 1]);
  26. }
  27. else {
  28. ans = max(ans, 1 + max(p[i - 1], s[i + 1]));
  29. }
  30. }
  31.  
  32. cout << ans << endl;
  33.  
  34. return 0;
  35. }
Success #stdin #stdout 0s 5324KB
stdin
6
7 2 3 1 5 6
stdout
5