fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. void solve(vector<int>& arr, int n) {
  4. vector<int> inc(n, 1), dec(n, 1);
  5.  
  6. for(int i = 1; i < n; i++) {
  7. if(arr[i] > arr[i - 1])
  8. inc[i] = inc[i - 1] + 1;
  9. else
  10. inc[i] = 1;
  11. }
  12.  
  13. for(int i = n - 2; i >= 0; i--) {
  14. if(arr[i] > arr[i + 1])
  15. dec[i] = dec[i + 1] + 1;
  16. else
  17. dec[i] = 1;
  18. }
  19.  
  20. cout<<"Increasing Subarray is"<<endl;
  21. for(int i:inc)
  22. {
  23. cout<<i<<" ";
  24. }
  25. cout<<endl;
  26.  
  27. cout<<"Decreasing Subarray is "<<endl;
  28. for(int i:dec)
  29. {
  30. cout<<i<<" ";
  31. }
  32. cout<<endl;
  33.  
  34. int maxi = 0;
  35. for(int i=0;i<n;i++)
  36. {
  37. if(inc[i]>1 and dec[i]>1)
  38. {
  39. maxi = max(maxi, abs(inc[i]+dec[i]-1));
  40. }
  41. }
  42. cout<<"Maximum is "<<maxi<<endl;
  43.  
  44. }
  45.  
  46. int main() {
  47. int T;
  48. cin >> T;
  49. while(T--) {
  50. int n;
  51. cin >> n;
  52. vector<int> arr(n);
  53. for(int i = 0; i < n; i++)
  54. cin >> arr[i];
  55. solve(arr, n);
  56. }
  57. return 0;
  58. }
  59.  
Success #stdin #stdout 0s 5320KB
stdin
1
5
12 4 78 90 45 23

stdout
Increasing Subarray is
1 1 2 3 1 
Decreasing Subarray is 
2 1 1 2 1 
Maximum is 4