Advertisement
Hezov

#839

Dec 1st, 2024
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. int v[1001] , cnt = 0;
  4. void solve(int l, int r, int mini)
  5. {
  6.     /// Aflam minimul din secventa
  7.     int mini2 = 2e9;
  8.     for(int i = l;i<=r;i++)
  9.         mini2 = min(mini2, v[i]);
  10.     if(mini2 > mini)
  11.     {
  12.         cnt++;
  13.         cout << l << ' ' << r << '\n';
  14.     }
  15.     /// Impartim in secvente ce nu contin mini2.
  16.     if(mini2 > mini && l != r)
  17.     {
  18.  
  19.        int st = l, dr = l;
  20.        for(int i = l;i<=r;i++)
  21.         {
  22.         if(v[i] == mini2)
  23.             {
  24.                 if(v[st]!=mini2)
  25.                     solve(st,dr,mini2);
  26.                 st = i + 1;
  27.             }
  28.             else dr = i;
  29.         }
  30.         if(st<=dr)
  31.             solve(st,dr,mini2);
  32.     }
  33. }
  34. int main()
  35. {
  36.     int n ;
  37.     cin >> n;
  38.     for(int i = 1;i<=n;i++)
  39.         cin>>v[i];
  40.     solve(1,n,0);
  41.     cout << cnt << '\n';
  42.     return 0;
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement