mihaimarcel21

Hill_Climb

Nov 19th, 2020 (edited)
474
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. /** INDICATII:
  2. SE VA PARCURGE VECTORUL DE LA DREAPTA LA STâNGA
  3. SI SE VA AFLA DISTANTA MAXIMA DE LA POZITIA CURENTA
  4. LA POZITIA MAXIMULUI PANA LA ELEMENTUL DAT.*/
  5. #include <bits/stdc++.h>
  6.  
  7. using namespace std;
  8. int num, arr[100005], t, sol;
  9. int main()
  10. {
  11.     ios_base::sync_with_stdio(false);
  12.     cin.tie(0);
  13.     cin>>t;
  14.     while(t)
  15.     {
  16.         cin >> num;
  17.         arr[0]=2e9;
  18.         for(int i=1; i <= num; i++)
  19.             cin>>arr[i];
  20.         stack<int>sc;
  21.         sc.push(0);
  22.         sol=0;
  23.         for(int i=1; i <= num; i++)
  24.         {
  25.             while(!sc.empty() && arr[sc.top()] < arr[i])
  26.                 sc.pop();
  27.             sol=max(sol, i - sc.top() - 1);
  28.             sc.push(i);
  29.         }
  30.         cout<<sol<<'\n';
  31.         t--;
  32.     }
  33.     return 0;
  34. }
  35.  
Add Comment
Please, Sign In to add comment