diff --git a/Arrays-algos/mountainSubarrayProblem.cpp b/Arrays-algos/mountainSubarrayProblem.cpp new file mode 100644 index 0000000..131f86b --- /dev/null +++ b/Arrays-algos/mountainSubarrayProblem.cpp @@ -0,0 +1,71 @@ +// https://practice.geeksforgeeks.org/problems/mountain-subarray-problem/1 + +#include +using namespace std; + +class Solution{ + public: + vector processQueries(int a[], int n, vector> &queries, + int q) { + + vectorans; + int left[n], right[n]; + left[0]=0; + right[n-1]=n-1; + int k=0; + + // left[i] stores the last index on left side which is increasing + // i.e. greater than its previous element + for(int i=1; i=0; i--) + { + if(a[i+1]> tc; + while (tc--) { + int n, i, q; + cin >> n; + int a[n]; + for (i = 0; i < n; i++) { + cin >> a[i]; + } + cin >> q; + vector> queries(q); + for (i = 0; i < q; i++) { + cin >> queries[i].first >> queries[i].second; + } + Solution obj; + auto v = obj.processQueries(a, n, queries, q); + for (bool u : v) { + cout << (u ? "Yes\n" : "No\n"); + } + } + return 0; +} \ No newline at end of file