Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int v[1001] , cnt = 0;
- void solve(int l, int r, int mini)
- {
- /// Aflam minimul din secventa
- int mini2 = 2e9;
- for(int i = l;i<=r;i++)
- mini2 = min(mini2, v[i]);
- if(mini2 > mini)
- {
- cnt++;
- cout << l << ' ' << r << '\n';
- }
- /// Impartim in secvente ce nu contin mini2.
- if(mini2 > mini && l != r)
- {
- int st = l, dr = l;
- for(int i = l;i<=r;i++)
- {
- if(v[i] == mini2)
- {
- if(v[st]!=mini2)
- solve(st,dr,mini2);
- st = i + 1;
- }
- else dr = i;
- }
- if(st<=dr)
- solve(st,dr,mini2);
- }
- }
- int main()
- {
- int n ;
- cin >> n;
- for(int i = 1;i<=n;i++)
- cin>>v[i];
- solve(1,n,0);
- cout << cnt << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement